對於我的項目,我使用SqlCE 3.5,Linq2Sql並使用SqlMetal生成實體類(dbml文件)。Linq-to-Sql,使用實體類和父/子對象
如果我使用實體類的擴展作爲我的業務對象類,我該如何處理子對象?
我可以使用已存在於dbml文件中的現有EntitySet(Of ChildClass)嗎?或者我應該在我的部分類擴展創建一個新的集合屬性,如:
public partial class ParentClass
{
public List<ChildClass> children { get; set; }
}
我得到這個模糊的假設的EntitySet(中ChildClass)具有某種類型的直接連接到完整的數據庫表。而且我也許應該將它用作純粹的數據訪問對象,對於業務邏輯,我應該保留這個只能包含表的子集的其他集合對象。
但我不確定我是否完全誤解了這個概念?我真的很想知道這應該如何正確使用..?
EDIT1:
一件事,可能是我的一個性能問題是結合我的對象集合到一個DataGridView時。一些屬性更新頻繁,從股票交換數據饋送,我不知道是否使用EntitySets作爲業務層集合使這慢。雖然我不要求那些更新提交更改。由於所有更新,我仍然無法滾動datagridview。這可能是由於使用EntitySets,或者僅僅是datagridview本身更新頻繁,以至於滾動看起來不可能?
謝謝!我希望我明白你的意思;使用「使用IList公開它們並使用存儲庫來填充列表」,您的意思是像本示例的第一個代碼部分(http://mikehadlow.blogspot.com/2008/03/using-irepository-pattern-with -linq-to.html),但返回IList而不是該示例中的IQueryable? – bretddog 2011-01-14 03:12:42