想要使用 LinqPad 学习 Linq,但不知从何开始,感到沮丧。假设我想写一个 C# 表达式和一个 C# 语句,其中我有一个名为 Products 的 SQL Server 表,并且我想提取所有价格大于50的行。你会如何编写它?
想要使用 LinqPad 学习 Linq,但不知从何开始,感到沮丧。假设我想写一个 C# 表达式和一个 C# 语句,其中我有一个名为 Products 的 SQL Server 表,并且我想提取所有价格大于50的行。你会如何编写它?
假设我想编写一个C#表达式和C#语句,其中我有一个名为“Products”的SQL服务器表,并且我想提取所有价格大于50的行。你会怎么写呢?
LINQPad会自动为您构建类型化的DataContext,因此您不需要实例化任何内容。在C#表达式模式下,只需键入以下内容:
Products.Where(p => p.Price > 50)
按下F5键即可。或者,您可能更喜欢使用查询表达式:
from p in Products
where p.Price > 50
select p
在 C# 语句模式下,您需要调用 Dump() 方法来指示它将结果写出。您还需要用分号结束表达式:Products.Where(p => p.Price > 50).Dump();
在 LINQPad 的示例部分中有更多的例子——看看 5 分钟的介绍即可。
只是想补充一下 - LINQ pad会自动将表名变成复数形式 - 我不知道这一点,花了我好几十分钟的时间摆弄
我试图从一个名为DentalApplication的表中进行选择
DentalApplication.Where(a=> a.PackageID > 0)
给了我这个错误
'LINQPad.User.DentalApplication' does not contain a definition for 'Where'
改成了
DentalApplications.Where(a=> a.PackageID > 0)
而且它起作用了
var db = new MyDatabaseContext(); // Your database context.
var result = db.Products.Where(q=>q.Price > 50);
...其中db
代表你的ORM上下文。 Price
表示你在数据库中映射到Price
字段。 result
代表结果集--即你的数据库行/实体。
MyDatabaseContext
只是一个虚拟名称,你可以用任何你的ORM命名。 - George Johnston请查看http://msdn.microsoft.com/en-us/library/bb397933(v=vs.90).aspx,它将为您介绍Linq和使用lambda表达式的基础知识。
然后再看看http://msdn.microsoft.com/en-us/library/bb386927.aspx,它将为您提供基础知识,但是要回答您具体的问题:
var products = db.Products.Where(prod => prod.Price > 50);
foreach(var product in products)
{
//do something
}