Я отключил lazy-load в моем контексте Entity Framework db. Но по-прежнему возникают проблемы со следующими моделями:Не виртуальные свойства инициализируются, даже когда ленивая загрузка отключена
public class Currency
{
//properties
public ICollection<ConversionRate> ConversionRates{get;set;}
public Currency()
{
ConversionRates = new HashSet<ConversionRate>();
}
}
преобразования класса Rate выглядит следующим образом:
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
Что я делаю неправильно, что заполнение коллекции?
ну с того же поста: ** ленивая загрузка коллекций Сообщений может быть отключена, сделав свойство Posts *** не виртуальным ***: ** – TheVillageIdiot
Извините, неправильно прочитано. Теперь, когда я прочитал его ближе, вы отключили ленивую загрузку и сделали коллекцию не виртуальной, не так ли ожидаемое поведение (что коллекции заполнены)? –
Да, именно эта аномалия - это то, что меня озадачивает !!! Я не могу сериализовать и отправлять его как JSON из-за круговой ссылки. – TheVillageIdiot