即使在禁用延迟加载时,非虚拟属性也会被初始化

我在我的实体框架数据库上下文中禁用了延迟加载。但是,仍然有以下型号的问题:即使在禁用延迟加载时,非虚拟属性也会被初始化

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

回到顶部