【发布时间】:2013-09-14 18:07:36
【问题描述】:
我将存储库模式与 DI 和 IoC 一起使用。
我在我的存储库中创建了一个函数:
T EagerGetById<T>(Guid id, string include) where T : class
{
return _dbContext.Set<T>().Include(include).Find(id);
}
这将急切地在我的实体右侧加载一个导航属性。
但如果我的实体看起来像这样:
public class Blog : PrimaryKey
{
public Author Author {get;set;}
public ICollection<Post> Posts {get;set;}
}
如何获得 Author 和 Posts 的即时加载?我真的必须这样做吗:
_dbContext.Set<T>().Include("Author").Include("Posts").Find(id);
不可避免地会产生这样的功能:
T EagerGetById<T>(Guid id, string include, string include2, string include3) where T : class
{
return _dbContext.Set<T>().Include(include).Include(include2).Include(include3).Find(id);
}
因为这对于 Generic 存储库来说效率非常低!
【问题讨论】:
标签: c# entity-framework