Можно ли с нетерпением загружать связанные объекты, но не иметь загруженных связанных объектов связанных объектов?Entity Framework - Неглубокая загрузка?
В моем случае, у меня есть набор флагов, чтобы определить, какие связанные объекты должны быть загружены:
[Flags]
public enum FooRetrievalOptions
{
None = 0,
Bar = 1,
Baz = 2,
All = Bar | Baz
}
Я создаю IQueryable <Foo> и последовательно .INCLUDE в зависимости от того, какие флаги были установлены.
IQueryable<Foo> query = context.Foos;
if (fooRetrievalOptions.HasFlag(FooRetrievalOptions.Bar))
{
query.Include(f => f.Bar);
}
if (fooRetrievalOptions.HasFlag(FooRetrievalOptions.Baz))
{
query.Include(f => f.Baz);
}
List<Foo> foos = query.ToList();
Проблема с этим в том, что при серийном оформлении он может создавать циклы в зависимости от свойств навигации на барах и базах.
Я просто хочу загрузить связанные объекты в одной базе данных без их собственных связанных объектов, которые также загружаются. Это возможно?
Что библиотекой вы используете сериализовать ваши объекты? – Maxime
DataContractSerializer. Я мог бы использовать IsReference = true для обработки циклов, но похоже, что это приведет к довольно большому XML. – bbush
Lazy loading в контексте отключен. Вот почему я указываю, какие связанные объекты загружаются с нетерпением. – bbush