0
所以我們使用了代碼優先的方法來構建數據庫。我遇到過一個問題,解決問題的成功很少。 DB類 - 試圖檢索相關的內部集合Linq to Entity - ICollection上的錯誤<Guid>(代碼優先)
的錯誤我已經嘗試了一些不同的LINQ方法來嘗試代碼的特定條件對象時(EF代碼第一)
public partial class Object1
{
[Key]
public Guid uid { get; set; }
public int sequenceNumber { get; set; }
public bool triggerFlag { get; set; }
public ICollection<Guid> Object2 { get; set; }
public ICollection<int> Object3 { get; set; }
}
拋出一個錯誤並解決錯誤,但沒有工作過(dc是在DataContext的EF)
return JsonConvert.SerializeObject(dc.Object1.Where
(x => (!x.Object2.Any() || x.Plants.Contains(object2UID))
&& (x.Object3.Count == 0 || x.Object3.Contains(Object3)).ToList());
產生的誤差是
「System.NotSupportedException」類型的未處理的異常在EntityFramework.SqlServer.dll
發生 其他信息:指定的類型成員的對象2'在LINQ不 支撐到實體。僅支持初始化程序,實體成員和實體導航屬性。
public partial class Object2
{
[Key]
public Guid uid { get; set; }
[Required]
[StringLength(50)]
public string model { get; set; }
[StringLength(3)]
public string Type { get; set; }
[StringLength(10)]
public string alias { get; set; }
}
這可能是因爲Object2不在您的Object1表架構中。如果Object2通過外鍵鏈接到另一個表,則需要對其進行配置並「包含」它以提取其值。此外,在這種情況下,您需要將該屬性聲明爲「虛擬」。 – rageit
@rageit是的,數據庫只顯示3列不是集合。但是這種格式在別處使用並且可行。有趣的是,它會拋出object3上的同樣的錯誤,如果我只是從linq中刪除object2 – asuppa
請添加Object2類?你爲什麼想要Guid的導航財產集合? – SWilko