У меня есть 2 классов, SalesSubCategory и SalesCategory:Entity Framework 6: связанные объекты автоматически добавляются к родительской сущности, несмотря на отложенную загрузку выключению
[Table("SALES.SubCategory")]
public class SalesSubCategory
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ID { get; set; }
public int CategoryID { get; set; }
public string Name { get; set; }
[ForeignKey("CategoryID")]
public SalesCategory SalesCategory { get; set; }
}
[Table("SALES.Category")]
public class SalesCategory
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ID { get; set; }
public string Name { get; set; }
}
Этот метод возвращает список SalesSubCategories БЕЗ SalesCategory Объект загружен
public class TestController : Controller
{
private readonly MD_Context _context;
public TestController(MD_Context context)
{
_context = context;
}
public async Task<List<SalesSubCategory>> NoRelated()
{
var subCategories = await _context.SalesSubCategories.ToListAsync();
return subCategories;
}
Этот метод возвращает список SalesSubCategories с SalesCategory Объект загружен
public async Task<List<SalesSubCategory>> Related()
{
var subCategories = await _context.SalesSubCategories.ToListAsync();
var categories = await _context.SalesCategories.ToListAsync();
return subCategories;
}
MD_Context сконфигурирован, чтобы отложенная загрузка отключена:
Configuration.LazyLoadingEnabled = false;
Это ожидаемое поведение? Мой предпочтительный результат: НЕ иметь предварительно загруженные объекты объекта SalesCategory.
спасибо.
Фантастично, спасибо! – Gmd3
Итак, оглядываясь вокруг, похоже, что нет никаких глобальных настроек, чтобы это применимо ко всем моим запросам ... painful – Gmd3
Каждый ORM отличается, я полагаю, что решение EntityFramework для этого поведения связано с тем, что они считают, что люди будут использовать их не просто для извлечения результаты в объекты строго типа, но также для управления объектами результатов запроса. Вы можете использовать Dapper.NET или какую-то более урезанную функцию, например ORM, для вашего желаемого поведения, это даст вам возможность для объектов с категориальным типом без концепции db-контекста. –