我已经将读取上下文与写入分开,现在我将默认启用ReadOnlyContext中的LazyLoading。我也使用了以下方法,但不幸的是它没有起作用。
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 版本:
EntityFramework Core 版本 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:在类似 'PartnerProxy' 的已分离实体上尝试惰性加载导航属性 'PartnerUsers'。无法针对已分离实体或使用 'AsNoTracking()' 加载的实体进行惰性加载。此异常可以通过将事件ID“CoreEventId.DetachedLazyLoadingWarning”传递给 'DbContext.OnConfiguring' 或 'AddDbContext' 中的 'ConfigureWarnings' 方法来抑制或记录。”
如何解决这个问题?