0
我有兩個實體框架代碼優先POCO。我可以很容易地將新的網站和技術項目插入到數據庫中,但我似乎無法將站點與技術關聯。當我這樣做...EF代碼優先:連接表爲空
if(!site.Technologies.Any(o => (o.Name == technology.Name && technology.Source == source)))
{
site.Technologies.Add(technology);
technology.Sites.Add(site);
}
我得到一個重複鍵錯誤。如果我從條件中刪除第二行,則連接表TechnologiesSites不會獲得任何記錄!如何在EF Code First中插入?
public class Site
{
public Site()
{
Technologies = new HashSet<Technology>();
}
[Key]
public string Hostname { get; set; }
public virtual ICollection<Technology> Technologies { get; set; }
}
和
public class Technology
{
[Key, Column(Order = 0)]
public string Name { get; set; }
[Key, Column(Order = 1)]
public string Source { get; set; }
public virtual ICollection<Site> Sites { get; set; }
public Technology()
{
Sites = new HashSet<Site>();
}
}
你能告訴我們你的病情生成的查詢? (提示,將條件存儲在一個變量中,並讓Visual Studio調試幫助您:var query = site.Technologies.Where(.......)) – Polity
顯示或描述您是如何獲取網站和技術的。它們是否從相同的上下文實例加載? –