我需要一些优化lambda表达式的帮助。
实体
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
实体中有更多列。我正在尝试优化表达式,以便在Product.Code
列上生成SQL时,而不是整个Product
表,以及相关的GroupProduct和拥有的ProductGroup。
当我尝试&#34;过滤&#34;产品实体我收到错误:
包含路径表达式必须引用导航 属性在类型上定义。使用虚线路径作为参考 导航属性和集合的Select运算符 导航属性。参数名称:路径
有什么想法吗?