我有一個單一的位置表,其中有多個外鍵關係。它具有狀態表,城市表,國家表和用戶表的外鍵。現在我已經在Entity框架中正確映射了表模型,但是如果我嘗試訪問位置表中的外鍵ID字段以添加新的外鍵映射,我無法訪問它,取而代之的是我得到一個引用字段,例如StateReference。實體框架維護外鍵關係
現在我發現一些文章說,只使用entitykey.StateReference。我嘗試過,它的工作原理,但對我來說似乎很笨重。我注意到的是它也提供了一個現場狀態,而不是StateID。所以,我假設一個人可以將狀態名稱傳遞給Location對象,而實體框架幾乎可以自動將關係映射出來。我無法在任何地方查找或找出正確的語法。
如果我在這裏偏離基地,有人請指出正確的方向並糾正我?我一直在衝這一段時間,似乎無法得到它。或者如果我說的是正確的,有人可以給我一些基本的代碼來顯示語法。我正在VS2010中創建一個Web服務,所以如果我理解正確,我正在使用ef v1。以下是我的位置對象的代碼。
using(Entities context = new Entities())
{
Location NewLocation = new Location
{
//In SQL all three of these field are acutally foreign key ids I am
trying to maintian
State = context.States.Where(i => i.State1.Equals(AddedState)),
Country = context.Countries.Where(i => i.State1.Equals(AddedCountry)),
City = context.Cities.Where(i => i.City1.Equals(AddedCity)),
}
};
context.AddToLocation(NewLocation);
context.SaveChanges();
}
您需要在SO處閱讀一些有關編輯器的內容(單擊幫助,然後在問題編輯器中單擊高級幫助)。不要爲段落使用前導空格,這會將它們變成代碼塊。我編輯了它,但編輯需要一段時間才能完成審批流程。根據你的問題,我知道在EF 4.x中,我可以設置一個選項,告訴它映射外鍵以及創建引用。我不認爲這個選項在以前的版本中可用,所以你也可以指定你使用的是哪個EF版本。 – Tod 2012-08-15 17:34:52