据我所知,LINQ to entity 鼓励使用Load()
or进行急切加载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()
业务逻辑?