Выбор столбцов: выражение "Включить путь" должно ссылаться на свойство навигации, определенное для типа.
Мне нужна помощь с оптимизацией лямбда-выражения.
юридические лица
public class ProductGroup
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[Key]
public int Id { get; set; }
[Required]
[Index(IsUnique = true)]
[StringLength(50)]
public string Code { get; set; }
[Required]
[StringLength(50)]
public string Name { get; set; }
public virtual ICollection<GroupProduct> GroupProducts { get; set; }
}
public class GroupProduct
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[Key]
public int Id { get; set; }
// Foreign Key
public int ProductGroupId { get; set; }
public int ProductId { get; set; }
// Navigation Properties
[Required]
[ForeignKey("ProductGroupId")]
public virtual ProductGroup ProductGroup { get; set; }
[Required]
[ForeignKey("ProductId")]
public virtual Product Product { get; set; }
}
public class Product
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[Key]
public int Id { get; set; }
[Required]
[Index(IsUnique = true)]
[StringLength(50)]
public string Code { get; set; }
[Required]
[StringLength(100)]
public string Name{ get; set; }
}
В настоящее время используется выражение
var q = context.ProductGroups.Where(s => s.Code == code)
.Include(s => s.GroupProduct.Select(p => p.Product));
Есть много больше столбцов в Product
Сущность. То, что я пытаюсь сделать, оптимизирует выражение так, когда SQL генерируется на Product.Code
колонка выделена а не вся Product
таблицы, вместе со связанной группой ProductProduct и группой ProductGroup.
Когда я пытаюсь "фильтровать" сущность Product, я получаю сообщение об ошибке:
Выражение "Включить путь" должно ссылаться на свойство навигации, определенное для типа. Используйте пунктирные пути для ссылочных свойств навигации и оператор Select для свойств навигации коллекции. Имя параметра: путь
Есть идеи?