Подтвердить что ты не робот

Многоуровневое включение в CodeFirst - EntityFrameWork

Это рабочий код;

IQueryable<Product> productQuery = ctx.Set<Product>().Where(p => p.Id == id).(Include"Contexts.AdditionalProperties.Field");

Но вы знаете, что он не смог создать ошибку времени компиляции, если мы допустили ошибку в строковом выражении в "Contexts.AdditionalProperties.Field"

Я хотел бы написать код ниже;

IQueryable<Product> productQuery = ctx.Set<Product>().Where(p => p.Id == id).Include(p => p.Contexts);

Но вышеприведенное утверждение не могло дать возможности определить дополнительные свойства и поле.

Что нам делать?

Я хотел бы написать как более, чем один для запроса построения.

Спасибо.

4b9b3361

Ответ 1

Если AdditionalProperties является отдельной ссылкой на другой объект:

using System.Data.Entity;
...
IQueryable<Product> productQuery = ctx.Set<Product>()
        .Include(p => p.Contexts.AdditionalProperties.Field)
        .Where(p => p.Id == id);


Если AdditionalProperties является коллекцией, вы можете использовать метод Select:

IQueryable<Product> productQuery = ctx.Set<Product>()
        .Include(p => p.Contexts.AdditionalProperties.Select(a => a.Field))
        .Where(p => p.Id == id);

Не забудьте импортировать пространство имен System.Data.Entity в свой файл класса!