我想知道如何在 的情況下在函數中定義一個返回類型。如何使用LINQ定義函數中的返回類型?
我有一個產品,我一次返回所有信息或一個產品。
你可以在我的下面定義的函數中看到。
public static Products GetProducts(int pid)
{
var pro = from p in context.Products
select p;
if(pid > 0)
pro = pro.where(p => p.ProductID ==pid)
return (Products)p;
}
問題是它給我鑄造錯誤。因爲你可以看到我想要實現的是基於我的參數給它一個結果集。一段時間一堆產品&一段時間單品。我新linq所以任何幫助將不勝感激。
該錯誤是無法轉換類型的對象 'System.Data.Objects.ObjectQuery`1 [TTDCore.Theatres]' 爲類型 'TTDCore.Theatres'
時,即時通訊結合它的GridView 。這裏是一個代碼
Products p = Class1.GetProducts(0);
GridView1.DataSource = p;
GridView1.DataBind();
是的,這正是我正在尋找的。只是一個快速的我試過這個&GridView的工作正常。但如果在返回單個記錄的情況下。我以這種方式做這是一個正確的方式嗎? 產品p =(Products)Class1.GetProducts(1).FirstOrDefault(); Response.Write(p.ProductName); 其作品只是發現它是否正確。 thanx爲你的快速反應。 – Andy 2009-05-17 22:58:06
啊,很好。 :)是的,你提出的返回單個記錄的方式應該可以正常工作。根據情況,First/FirstOrDefault或Single/SingleOrDefault擴展方法是合適的。後者(單)會拋出一個異常,如果有*多於一個匹配,而前者(第一個)當然只是返回第一個,然後停止枚舉。如果沒有匹配,`OrDefault`位意味着返回默認值(對於引用類型爲null),而不是拋出異常。 – Noldorin 2009-05-17 23:05:58