I'm using the Repository pattern with DI and IoC.
I have created a function in my Repository:
T EagerGetById<T>(Guid id, string include) where T : class
{
return _dbContext.Set<T>().Include(include).Find(id);
}
This will eagerly load one navigation property in my entity right.
But if my entity looks like this:
public class Blog : PrimaryKey
{
public Author Author {get;set;}
public ICollection<Post> Posts {get;set;}
}
How would I get eager loading for Author
and Posts
? Would I literally have to do:
_dbContext.Set<T>().Include("Author").Include("Posts").Find(id);
inevitably producing a function like this:
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);
}
Because that would be really inefficient for a Generic
Repository!
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…