我有一個類,如:獲取計數使用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