我有一个类,如:获取计数使用LINQ和Entity Framework
public class Category
{
public int CategoryId { get; set; }
[Required]
public string Name { get; set; }
[NotMapped]
public int ProductCount { get; set; }
public virtual IEnumerable<Product> Products { get; set; }
}
我有一个目前看起来像这样的查询:
context.Categories.SortBy(sortByExpression).Skip(startRowIndex).Take(maximumRows)
我需要包括我的类别网格中的ProductCount字段。是否可以扩展此LINQ查询以在不读取整个Product集合的情况下为我提供ProductCount属性?我可以在使用良好的旧SQL的子查询中做到这一点,但我很难用LINQ。
感谢
'ProductCount'未映射(注意attribte),因此不能用于初始检索值。我假设这个属性是该查询的结果将被存储的地方。 –
我明白了,那么问题是Count()的实现对于我猜测的产品的集合类型是什么。 'Select(c => new {c.CategoryId,c.Name,c.Products.Count()});'可能产生“合适的”SQL/Code /等。 –
感谢您的建议。是的,ProductCount不存储在数据库中。我尝试了上面的代码,但我无法实现它的工作。正如所写,它返回一个匿名类型,它不会编译。如果我将它更改为'c => new Category',我会得到“实体或复杂类型'Category'不能在LINQ to Entities查询中构造。”我错过了什么吗? – John