Entity Framework静态数据(查找table)实现

Entity Framework static data (lookup table) implementation

目前我正在使用 Entity Framework 代码优先方法开发一个 C# 项目。我坚持使用静态(参考)数据。

让我们假设存在 "movie" 和 "movie genre" 实体:

public class Movie
{
    [Key]
    public int ID;

    public String Name;

    public DateTime Year;

    public String GenreCode;

    [ForeignKey("GenreCode")]
    public virtual Genre Genre { get; set; }
}


public class Genre
{
    [Key]
    public String Code;

    //description of the code
    public String Desc;

    //Should I put this???
    public virtual ICollection<Movie> Movies { get; set; }  
}

一部电影可以有一种类型,但一种类型可以属于多种类型。 在这种情况下,我是否必须将 "public virtual ICollection Movies { get; set; }" 放入流派 class 中? 我相信我不应该放这个,因为流派是静态的 data.However 我不确定。 另外 我不想在代码中使用枚举 作为流派,因为将来可以在数据库中定义新的流派。

使用entity framework处理这种关系的最佳方式是什么?

谢谢。

此致,

不,如果您不需要执行类似以下操作,则不必将 public virtual ICollection Movies { get; set; } 放在那里:

Genre genre = ....;
var movies = genre.Movies.ToList();

无论您是否在 Genre 中有 Movies 集合,都会创建 Genre 和 Movie 之间的一对多关系。