想象一下,我有一个由代码创建的数据库,看起来像这样。代码第一个实体框架和外键
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;}
}
数据库首先使我能够从演员查询电影,但也可以让我设置演员的forgien键属性来更新数据库。我不能在代码中做到这一点,因为外键不是只在模型中的对象。我宁愿不要获取Movie对象并设置属性,如果我知道我的电影的id,我宁愿只设置外键而不打电话来获取电影。
有意义吗?大声笑
我想使用codefirst和实体的迁移,但我想要的数据库相同的能力首先设置一个对象的外键。
干杯的帮助:-D
配置它“我不能在代码首先做的原因是外键是不是模型”。这是代码第一 - 将其添加到您的模型!一些开发人员不喜欢外键,有些是http://msdn.microsoft.com/en-us/magazine/hh708747.aspx – Colin
我知道你可以将它添加到你的模型,但是然后迁移创建重复键 –