我已經商業模式命名Product
和Orders
象下面這樣:如何從庫中返回自定義結果集?
public class Product
{
public int ProductId {get; set;}
public string Name {get; set;}
}
public class Order
{
public int OrderId{get; set;}
public int ProductId {get; set;}
...
}
在我的倉庫層我想返回的產品集合放置針對每個產品訂單的數量,但我想不通的正確的方法或定製返回結果集:
public ?? GetProductsWithOrderCount()
{
var resultSet = from p in Products
join o in Orders on p.ProductId equals o.ProductId into grp
select new
{
Product = p,
OrdersCount = grp.Count(); // Does not work, just for demonstration
};
return resultSet;
}
現在我知道我可以使用IEnumerable<object>
作爲返回類型,但我在那裏我在服務層用它來把結果集。
另一種選擇是我可以創造另一種模式,並返回IEnumerable<ProductWithOrderCount>
但補充說,並不代表我的系統中不必要的車型:
public class ProductWithOrderCount
{
public Product Product {get; set;}
public int OrdersCount {get; set;}
}
是否有任何其他方式做到這一點?
您必須創建包含getter setter這兩個模型的viewmodel –
我相信問題在於您正在使用存儲庫來返回摘要/聚合數據。該庫用於返回*聚合根目錄* - 頂層實體,然後您可以在邏輯層中編寫查詢以生成計數。 –
查看模型應該在UI層,對嗎?這是在存儲庫層。 –