即使在禁用延迟加载时,非虚拟属性也会被初始化
我在我的实体框架数据库上下文中禁用了延迟加载。但是,仍然有以下型号的问题:即使在禁用延迟加载时,非虚拟属性也会被初始化
public class Currency {
//properties
public ICollection<ConversionRate> ConversionRates{get;set;}
public Currency()
{
ConversionRates = new HashSet<ConversionRate>();
}
}
转换率等级如下:
public class ConversionRate {
[ForeignKey("FromCurrencyId")]
public Currency FromCurrency { get; set; }
public Guid FromCurrencyId { get; set; }
[ForeignKey("ToCurrencyId")]
public Currency ToCurrency { get; set; }
public Guid ToCurrencyId { get; set; }
}
下面是配置:
///Currency HasMany(x => x.ConversionRates).WithRequired(x => x.FromCurrency);
HasMany(x => x.ConversionRates).WithRequired(x => x.ToCurrency);
,当我用下面的语句来获取ConversionRate
S:
var cr = _uow.ConversionRates.Query .Include(x=>x.FromCurrency)
.Include(x=>x.ToCurrency)
.FirstOrDefaultAsync(x=>x.Id==id);
个 下列集合填充:
cr.FromCurrency.ConversionRates cr.ToCurrency.ConversionRates
我在做什么错被填充的集合?
回答:
您的ConversionRates集合需要定义为虚拟。 https://msdn.microsoft.com/en-us/data/jj574232.aspx#lazy
以上是 即使在禁用延迟加载时,非虚拟属性也会被初始化 的全部内容, 来源链接: utcz.com/qa/263216.html