EF Core / SQL Server включают свойства навигации, которые работают только при использовании непосредственно в запросе - PullRequest
0 голосов
/ 26 февраля 2019

Моя среда: VS 2017, EF Core (2.1.4), SQL Server 2017, нетерпеливая загрузка

Когда я строю свой запрос следующим образом:

var query = MyDbSet.Where(c => c.CustomerId > 2).Include(c => c.Addresses);
var result = await query.FirstOrDefaultAsync();

У меня есть желаемоесвойство навигации (адреса) в результирующем объекте.Но когда я делаю это:

var intermediate = MyDbSet.Where(c => c.CustomerId > 2);
var query = intermediate.Include(c => c.Addresses);
var result = await query.FirstOrDefaultAsync();

Результат не имеет правильно заполненного свойства Адреса (оно равно null).

Я разрабатываю общий уровень абстракции и хочу позволить пользователюпредоставить список включаемых операторов.Я хочу перебрать эти утверждения и добавить их один за другим.

В моей среде модульных тестов он работает так, как я ожидал (с использованием sqlite), но в производственной среде (SQL Server) запрос не выполняется должным образом.Любая идея, что здесь происходит?

Как я могу сделать что-то подобное в среде SQL Server:

foreach (var expression in includes)
    query = query.Include(expression);

Надеюсь, мой вопрос имеет смысл.

...