Я отделил контекст чтения от записи. Теперь я собираюсь включить LazyLoading в ReadOnlyContext по умолчанию.Я также использовал следующий метод, но, к сожалению, он не работает.
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder
.UseLazyLoadingProxies()
.UseSqlServer(@"Data Source=.;Initial Catalog=UniversityDb;Persist Security Info=True;User ID=admin;Password=asdasdsadasd");
}
моя модель:
public class Partner : BaseEntity<int>
{
public string Name { get; set; }
public DateTime CreateDate { get; set; }
public bool IsDisabled { get; set; }
public bool IsDeleted { get; set; }
public virtual ICollection<PartnerUser> PartnerUsers { get; set; }
}
моя версия ef:
Ядро EntityFrameworkv 2.1.2
public async Task<PartnerQuery> Get(int id)
{
var result = await _partnerDbSet.SingleAsync(c => c.Id == id);
var list = result.PartnerUsers;
return new PartnerQuery()
{
CreateDate = result.CreateDate,
Name = result.Name,
Id = result.Id
};
}
Я получил эту ошибку:
"Ошибка, сгенерированная для предупреждения" Microsoft.EntityFrameworkCore.Infrastructure.DetachedLazyLoadingWarning: была сделана попытка выполнить ленивый-нагрузить свойство навигации PartnerUsers на отдельную сущность типа PartnerProxy. Ленивая загрузка не поддерживается для отсоединенных сущностей или сущностей, которые загружены с помощью AsNoTracking (). Это исключение может быть подавлено или зарегистрировано путем передачи идентификатора события'CoreEventId.DetachedLazyLoadingWarning' для метода 'ConfigureWarnings' в 'DbContext.OnConfiguring' или 'AddDbContext'. "
Как решить эту проблему?