Ниже приведена модель данных, в которой сущность A
имеет свойство навигации B
[Serializable]
public class X
{
[Key]
public int Id { get; set; }
}
[Serializable]
public class A : X
{
public List<B> B { get; set; }
}
[Serializable]
public class B : X
{
public int AId { get; set; }
public A A { get; set; }
}
Затем я пытаюсь получить доступ к таблице A из базы данных следующим образом:
public class MyDatabaseContext : DbContext
{
Configuration.ProxyCreationEnabled = false;
}
public async Task<IEnumerable<T>> SelectAsync<T>() where T : X
{
using (MyDatabaseContext db = new MyDatabaseContext ())
{
var dataTable = db.Set<T>();
var temp = await dataTable.ToListAsync();
return temp;
}
}
Это почти работает, за исключением того, что для каждого экземпляра A
, возвращенного в коллекции temp
, значение B
равно null
.Поскольку каждый A
имеет не null
B
в базе данных, я удивлен результатом db.Set<T>()
Вопросов :
- Почему я получаю этот результат?
- Что нужно сделать, чтобы
db.Set<T>()
вернул A
с действительными (ненулевыми) B
с?
Обновление Основываясь на предложении @Camilo Terevinto, я попытался без удачи
public class MyDatabaseContext : DbContext
{
Configuration.LazyLoadingEnabled = true;
}