我是Linq to Entity的新手,所以我不知道我在做什麼是最好的方法。我應該如何將此Linq寫入實體查詢?
當我做這樣的查詢它編譯,但引發錯誤,它不能識別方法GetItemSummaries。查看它,這似乎是因爲它不喜歡查詢中的自定義方法。
return (from c in _entity.Category
from i in c.Items
orderby c.Id, i.Id descending
select new CategoryDto
{
Id = c.Id,
Name = c.Name,
Items = GetItemSummaries(c)
}).ToList();
private IEnumerable<ItemSummary> GetItemSummaries(CategoryDto c)
{
return (from i in c.Items
select new ItemSummary
{
// Assignment stuff
}).ToList();
}
由於我無法調用自定義方法,我該如何將它組合成單個查詢?
我試着用實際的查詢替換方法調用,但後來抱怨ItemSummary不被識別,而是抱怨方法名不被識別。有沒有辦法做到這一點? (或者更好的辦法?)
對不起,這只是一個學習應用程序,所以我的namings是一種懶惰。我返回的類別是一個從實體對象創建的Dto對象,我不認爲我可以在Dto類上創建擴展方法並讓它按照我的需要進行操作。 – Brandon 2009-09-13 07:36:17
爲什麼不呢?你可以在任何對象上放置擴展方法 - 只要你的「Category」對象包含你在GetItemSummaries方法中需要的所有信息 - 沒問題。 – 2009-09-13 12:51:19