C# Linq到SQL的简短问题

C# Linq到SQL的简短问题,c#,.net,sql,sql-server,windows,C#,.net,Sql,Sql Server,Windows,下面我有一个问题。尽管有人能指出“来自p”是什么意思吗?还有“var r” p表示引用的集合中的每个特定项(db.Products)。请参阅MSDN上的 var是语法糖-它解析为LINQ查询返回的类型,将类型分配给变量r。请参阅MSDN上的 为了更好地理解LINQ,我建议通读。中的p表示来自db的任何记录。Product和varr表示p 整体整体报表意味着提供db.Products中的所有记录(p),其中p.UnitPrice大于15 参见问题了解更多关于varr是组合查询-anIQueryab

下面我有一个问题。尽管有人能指出“来自p”是什么意思吗?还有“var r”


p
表示引用的集合中的每个特定项(
db.Products
)。请参阅MSDN上的

var
是语法糖-它解析为LINQ查询返回的类型,将类型分配给变量
r
。请参阅MSDN上的


为了更好地理解LINQ,我建议通读。

中的p
表示来自
db的任何记录。Product
var
r表示p

整体整体报表意味着提供
db.Products
中的所有记录(p),其中
p.UnitPrice
大于15


参见问题了解更多关于
var
r
是组合查询-an
IQueryable
或类似查询;请注意,查询尚未执行-它只是一个挂起的查询
var
表示“编译器,从右边的表达式中找出r的类型”。在本例中,您可以明确说明,但不是全部。但它不会增加任何价值,所以
var
是可以的

p
是每种产品的方便标记;查询是“对于每个产品(p),仅限于单价大于15的产品(
其中p>15
),因此选择该产品(
选择p

最终,这将编译为:

IQueryable<Product> r =
    db.Products.Where(p => p.UnitPrice > 15);
IQueryable r=
db.产品,其中(p=>p.单价>15);

(在本例中,编译器省略了最后一个
.Select(p=>p)
,但通过非平凡的投影或平凡的查询,
.Select(…)
被保留)

谢谢,回答得很好!
IQueryable<Product> r =
    db.Products.Where(p => p.UnitPrice > 15);