後,我有以下2類:獲取實體導航屬性插入
public class Reward
{
public int Id { get; set; }
public int CampaignId { get; set;
public virtual Campaign Campaign { get; set; }
}
public class Campaign
{
public int Id { get; set; }
public virtual ICollection<Reward> Rewards { get; set; }
}
有了這個,我有一個像的DbContext和映射所有明顯必要的東西。
現在讓我們說我創建了一個獎勵實體並將其插入這樣的:
var reward = new Reward { CampaignId = 1 };
context.Set<Reward>().Add(reward);
context.SaveChanges();
reward = context.Set<Reward>().SingleOrDefault(a => a.Id == reward.Id);
//reward.Campaign is null
我顯然有ID爲1競選所以FK約束高興。插入之後,我的獎勵實體擁有新的身份標識集。現在問題是獎勵仍然只是我創建的獎勵實體。與此同時,獎勵。運動屬性爲空。看起來EF似乎將插入的實體保存在內存中,然後當我執行.SingleOrDefault(a => a.Id == reward.Id)時,它只是返回內存中的實體,而不是新的代理。這可能是一件好事。
所以現在的問題是:如何做一個接入或插入後,裝載的導航屬性或獲得具有導航性能代理,以及一個新的代理。
我是在錯誤的道路也許將?
貴測繪什麼樣子? – Maritim 2014-10-28 14:07:12
[Entity Framework的可能的重複:我設置了外鍵,SaveChanges然後訪問導航屬性,但它不加載相關的實體。爲什麼不?](http://stackoverflow.com/questions/15552891/entity-framework-i-set-the-foreign-key-savechanges-then-access-the-navigation) – Colin 2014-10-28 16:49:53