对于我的项目,我使用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