想象一下,我有一个由代码创建的数据库,看起来像这样.
Movie (table) ID int PK MoveiName nvarchar(100) Actor (table) ID int PK ActorName nvarchar(100) Movie_ID int FK
这些是我会使用的模型,显然不完全是这样,但你会明白我的观点.
class Movie { int ID{get;set;} string MovieName {get;set;} List<Actor> Actors {get;set} } class Actor { int ID{get;set} string Actorname{get;set} Movie Movie{get;set;} int Move_ID{get;set;} }
数据库首先使我能够从一个actor查询电影,但也允许我设置actor的forgien键属性来更新数据库.我不能在代码中首先执行此操作,因为外键在模型中不仅仅是对象.我不想获取Movie对象并设置属性,如果我知道我的电影的ID我宁愿只设置外键而没有调用来获取电影.
合理?大声笑
我想使用codefirst和实体迁移,但我想要与数据库相同的能力首先在对象上设置外键.
干杯的帮助:-D
解决方法
首先将代码更改为此
public class Movie { int ID{ get; set; } string MovieName {get; set; } List<Actor> Actors {get; set; } } public class Actor { int ID{get;set} string ActorName{ get; set } Movie Movie{ get; set; } int MovieID{ get; set; } }
到convention EF将知道MovieID是Movie的外键
然后将Actor代码更改为:
public class Actor { int ID{get;set} string ActorName{ get; set; } Movie Movies{ get; set; } }
演员出现在很多电影中.电影有很多演员……