Я использую шаблон репозитория с DI и IoC.EntityFramework Eager Загрузить все свойства навигации
Я создал функцию в моем Repository:
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
Repository!
Я действительно думал об этом, но легко ли в шаблоне репозитория с DI и IoC ?? –
На втором взгляде ... context.Configuration.ProxyCreationEnabled = false; не вызывает интенсивной нагрузки. Это просто превращает прокси-создание. Вам все равно нужно включить include. Я редактирую его из ответа. –
действительно ли это имеет смысл .... какой смысл в создании прокси-сервера, какие выгоды он дает ?! –