LinqPad を使用してLinqを学習しようとすると、その開始方法に不満を感じます。 SQLサーバーにProductsという名前のテーブルがあるC#式とC#ステートメントを記述し、価格が50を超えるすべての行をプルしたいとします。どのように記述しますか?
SQLサーバーにProductsという名前のテーブルがあるC#式とC#ステートメントを記述し、価格が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パッドは複数形になっています-私はこれを知りませんでした、そしてそれは私を15分間夢中にさせました
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
は、結果セット(データベースの行/エンティティ)を表します。
チェックアウト: http://msdn.Microsoft.com/en-us/library/bb397933(v = vs.90).aspx これにより、Linqの概要とラムダ式の使用方法がわかります。
次に、 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
}