0
聞聽此事的:爲什麼EF 4.1代碼首先返回一個HashSet而不是Collection
System.Collections.Generic.HashSet`1[Counter]
期待這樣的:
ICollection<Counter>
//底層對象:
public virtual ICollection<Counter> Counters { get; private set; }
我m使用DevExpress PropertyGridControl:
dxprg:CollectionDefinition Path="Counters" Type="{x:Type efo:Counter}"
我認爲EF的這種正常行爲考慮到我沒有在像ToList()這樣的計數器集合上調用任何函數,但由於CollectionDefenition上的Path屬性並不清楚如何實現。 我可以創建一個實時對象,用相同的值填充它,初始化集合,然後綁定它,但看起來很髒。
上正在發生的事情在這裏關於EF任何智慧是值得歡迎的..
好的,這是有道理的。所以,我將不得不在UI級別創建一個類型爲Collection的對象作爲「具體類」。 這是正確的嗎? – VipX1
如果你自己初始化集合,是的,它應該是一個'ICollection'的實現。 HashSet也很好用,因爲它具有獨特的元素,所以它們很好地映射到數據庫記錄。 –
'[NotMapped] public IList CountersList {return this.Counters.ToList(); }放入實體計數器對象以合理的方式解決問題。謝謝格特。 –
VipX1