And*_*ndy 1 c# linq asp.net entity-framework linq-to-sql
我想知道如何在以下情况下定义函数中的返回类型.
我有一个产品,我一次返回所有信息或一个产品.
正如您在下面定义的函数中看到的那样.
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;
}
Run Code Online (Sandbox Code Playgroud)
问题是它给我铸造错误.你可以看到我想要实现的是基于我的参数,它给我一个结果集.一段时间的产品和一些时间单品.我很新的linq所以任何帮助将不胜感激.
错误是无法将类型为'System.Data.Objects.ObjectQuery`1 [TTDCore.Theatres]'的对象强制转换为'TTDCore.Theatres'
当我将它绑定到gridview时.这是一个代码
Products p = Class1.GetProducts(0);
GridView1.DataSource = p;
GridView1.DataBind();
Run Code Online (Sandbox Code Playgroud)
您想要返回IEnumerable<Product>,它表示类型的可迭代(或可枚举)对象Product.LINQ通常都是基于这种泛型类型,所以它通常是您想要作为查询返回的结果.
我相信你的代码应该修复成这样的东西:
public static IEnumerable<Products> GetProducts(int pid)
{
var pro = from p in context.Products
select p;
if(pid > 0)
pro = pro.Where(p => p.ProductID == pid)
return pro;
}
Run Code Online (Sandbox Code Playgroud)
如果您在问题中提出其他问题,请告诉我.我不确定你究竟在寻找什么.