我想知道如何在 的情况下在函数中定义一个返回类型。如何使用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