【发布时间】:2009-03-30 09:56:57
【问题描述】:
据我所知,LINQ to entity 鼓励使用 Load() 或 Include() 进行预加载。但是,我想知道在多层应用程序中应该在哪里进行预加载?
数据访问层(封装实体实例的存储库类)具有通用Item GetItem(int id)函数是否正确,并且在业务逻辑层中这样做
Item item = dbRepository.GetItem(itemId);
if (!item.itemDetails.IsLoaded)
item.itemDetails.Load()
或者存储库类应该有不同的显式函数来加载不同的外部关系,因此返回预加载关系的项目?
非常感谢!
编辑: 示例 - http://www.asp.net/learn/mvc/tutorial-29-cs.aspx
public Contact GetContact(int id)
此函数返回Contact 实体类型。但是,取决于业务逻辑的需要,我们可能想要Load() 或Include() 不同的外关系Contact 实体。这个要求是否意味着我们需要更多重载的GetContact() 方法,其参数指示要加载哪些关系,或者只是在业务逻辑中执行Load()?
【问题讨论】:
标签: linq-to-entities