[英]what's the best return type for Select LINQ
我刚开始使用LINQ和C#,并且不确定返回一堆记录的LINQ语句的建议返回类型是什么。
当将数据链接到gridview时,我发现以下两种表示法均适用。 在什么情况下应该使用哪种方法?
public object SelectAll()
{
var query = from p in dc.Products
select new { p.pk_product_id, p.product_name, p.product_price_kg };
return query;
}
public IQueryable<Product> SelectAll2()
{
var query = from p in dc.Products
select p;
return query;
}
您不想返回object
。 我想知道你在哪里看到的。
首选方法是IQueryable<T>
或IEnumerable<T>
。
如果此方法仅作为GridView
的SelectMethod
调用,则没关系 。 GridView
代码将在执行时准确检查给出的数据类型,并根据数据的性质决定如何处理。 强类型化方法不会对GridView
造成任何影响。
如果您打算从自己的代码中使用此方法,请使用最有意义的特定类型。
如果您要构建可重用的数据访问代码(而不仅仅是对特定表单或控件的查询),则应查看存储库模式- 在此处查看 。
在这种情况下,您可能想从查询中返回强类型实体(而不是匿名类结果中的对象)
PS:您可以将SelectAll2缩短为
return dc.Products.AsQueryable();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.