想象一下,我有一個由代碼創建的數據庫,看起來像這樣。代碼第一個實體框架和外鍵
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
我知道你可以將它添加到你的模型,但是然後遷移創建重複鍵 –