當談到linq時,我通常對返回類型有困難。我會通過下面的例子來解釋。比方說,我有一個表產品與產品ID,姓名,類別和價格爲列:如何在使用Linq2Sql的方法中確定返回類型?
1)IQueryable的< ***產品*> **
public IQueryable<Product> GetChildrenProducts()
{
return (from pd in db.Products
where pd.Category == "Children"
select pd);
}
2)產品
public Product GetProduct(int id)
{
return (from pd in db.Products
where pd.ProductID == id
select pd).FirstOrDefault();
}
現在,如果我決定選擇,例如,只有一列(價格或名稱),或者甚至是2個或3列(名稱和價格) ,但無論如何,少於4列,返回類型是什麼?
我的意思是這樣的:
public returnType GetSomeInformation()
{
return (from pd in db.Products
select new { pd.Name, pd.Price }
}
應該是什麼的GetSomeInformation()的返回類型?
感謝您的幫助
@Yannick M. - 如果我決定查詢產品ID和類別(而不是名稱和價格),是否需要創建包含2列的其他類? – Richard77 2010-03-31 18:13:40
如果您願意,您可以讓您的課程包含全部四個字段,並且只設置需要使用的字段(如果需要)。或者,您可以根據每個LINQ請求返回的字段創建多個類。 – 2010-03-31 19:08:41
我更喜歡第一個選項,即只有一個類並設置我想要的字段。如果這是真的,(i)我可以在上面的例子中使用Product而不是ProductInformation? (ii0如果我可以使用Product而不是ProductInformation,那麼是否需要'Name = pd.Name'來代替'Name'? – Richard77 2010-03-31 20:28:53