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 之间的一对多关系。
目前我正在使用 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 之间的一对多关系。