Trying to learn Linq using LinqPad and getting frustated with how to start on it. Let\'s say I want to write a C# Expression and a C# statment where I have a table in SQL server
Let's say I want to write a C# Expression and a C# statment where I have a table in SQL server named Products and I want to pull all rows where price is greater then 50. How would yo write it?
LINQPad builds the typed DataContext for you automatically, so you don't need to instantiate anything. In C# expression mode, just type the folowing:
Products.Where(p => p.Price > 50)
and press F5. Alternatively, you might prefer to use a query expression:
from p in Products
where p.Price > 50
select p
In C# statements mode, you'll need to call the Dump() method to tell it to write out the results. You'll also need to terminate the expression with a semicolon:
Products.Where(p => p.Price > 50).Dump();
There are more examples in the samples section of LINQPad - look at the 5-minute induction.
Check out: http://msdn.microsoft.com/en-us/library/bb397933(v=vs.90).aspx which will give you an introduction to Linq and using lambda expressions.
Then have a look at http://msdn.microsoft.com/en-us/library/bb386927.aspx which will give you the basics, but to answer your specific question:
var products = db.Products.Where(prod => prod.Price > 50);
foreach(var product in products)
{
//do something
}
var db = new MyDatabaseContext(); // Your database context.
var result = db.Products.Where(q=>q.Price > 50);
...where db
represents your ORM context. Price
represents your mapping to the Price
field in the database. result
represents the result set -- your database rows/entities.
Just wanted to add - LINQ pad pluralizes - I did not know this and it drove me crazy for a good fifteen minutes
I was trying to select from a table called DentalApplication
DentalApplication.Where(a=> a.PackageID > 0)
Gave me this error
'LINQPad.User.DentalApplication' does not contain a definition for 'Where'
Changed it to
DentalApplications.Where(a=> a.PackageID > 0)
and it worked