Linq・ラムダ式
Linq で LIKE句 前方一致 * StartsWith() を使用する サンプル // 店舗クラス class Shop { public int ShopId; public string ShopName; } private void button1_Click(object sender, EventArgs e) { var shops = new[] { new Shop() {ShopId = 1, ShopNam…
Linq で IN句 * ちょっと特殊なやり方ですが、Contains()を使って、IN句を表現できる 構文 var 【結果】 = 【対象のリスト】.Where(x => new[] {【IN句の条件リスト】}.Contains(【対象の項目】)); // 以下のように、分けても書ける(この方が分かりやすいか…
Where をできる限り先に記述する * パフォーマンスを考慮して、Where は、できる限り、先に記述する
サンプル テーブル Personテーブル CREATE TABLE [dbo].[Person]( [Id] [int] IDENTITY(1,1) NOT NULL, [Name] [nvarchar](50) NULL, [Address] [nvarchar](50) NULL, [Email] [nvarchar](50) NULL, [Age] [int] NULL ) ON [PRIMARY] Employeeテーブル CREAT…
■ Skip / Take * Skip:先頭から指定された数の要素をスキップし、残りを返す * Take:先頭から指定された数の要素を返す http://d.hatena.ne.jp/chiheisen/20111031/1320068429 サンプル private void button1_Click(object sender, EventArgs e) { var sampl…
合計を求める * Sum()を使用する 構文 var totalStock = productDetails.Sum(x => x.Stock); サンプル 入れ子になった数量の合計を求める public partial class Form1 : Form { IList<Product> products; public Form1() { InitializeComponent(); this.products = ne</product>…
特定の条件に一致する要素を一つ取り出す [1] FirstOrDefault() * FirstOrDefault()で、条件に一致した要素を取り出すことができる * First()では、要素が見つからなかった場合、例外が発生してしまうことに注意 サンプル DateTime[] source = { new DateTim…
■ OrderByに関するメソッド OrderByメソッド、OrderByDescendingメソッド * Linqにおいて、昇順、降順の並び替えは、OrderByメソッド、OrderByDescendingメソッドで行う ThenByメソッド、ThenByDescendingメソッド * OrderByメソッド、OrderByDescendingメソ…
■ Any 構文 bool exists = [データセット].[テーブル].Any(x => x.[テーブルの項目] == [比較対象]) サンプル this.resultTableAdapter.Fill( mdbDataSet.ObservationResult); foreach (masterDataSet.PersonRow row in masterDataSet.Person) { if (testDat…
ACCESSデータベースでLinqを使う 前準備 1. Accessで、テーブルを作っておく(ファイル名「testDb.accdb」とする) 2. Visual Studioで、[新しいデータ ソースの追加]-[データベース]-[次へ]-[新しい接続]を選択 3. 接続の追加画面において、以下のように設定…
データ削除(DELETE) 手順 1. テーブルから該当する行を取得 2. DeleteOnSubmit()メソッドを使用 * 一気に複数の行を削除するには、DeleteAllOnSubmit()メソッドを使用 サンプル あとで書く 参考資料 http://thinkit.co.jp/free/article/0801/9/3/
データ修正(UPDATE) * エンティティのプロパティを変更すれば更新対象とし、その後、SubmitChanges()すれば更新される サンプル 前準備 以下の例については、 http://blogs.yahoo.co.jp/dk521123/16895242.html を前もって行っています。 private void butto…
最大値を求める * Max()を使用する サンプル 下準備 以下の例については、 http://blogs.yahoo.co.jp/dk521123/16895242.html を前もって行っています。 Idの最大値を求める using (DataClasses1DataContext context = new DataClasses1DataContext()) { lon…
データ追加・挿入(INSERT) * InsertOnSubmit()メソッドおよびSubmitChanges()を使用する * InsertOnSubmit()を実行しただけではデータベースに反映されず、 SubmitChanges()を呼び出した時点で反映される(遅延実行?) * 複数の行をまとめて挿入したい場合…
■ 2つのキーでJoin サンプル * 2つのキーでJoinするには、条件部分を『new { [条件1] , [条件2], ...}』とする // 商品クラス class product { public int id; public int shopId; public string name; } // 値段クラス class productPrice { public int…
■ Join(内部結合) サンプル 商品クラス class product { public int Id; public string name; } // 値段クラス class productPrice { public int Id; public int price; } private void button2_Click(object sender, EventArgs e) { product[] productList …
■左外部結合 (Left Outer Join) サンプル class product { public int Id; public string name; } class productPrice { public int Id; public int price; } class productStock { public int Id; public int stock; } private void button6_Click(object s…
下準備 以下の例については、 http://blogs.yahoo.co.jp/dk521123/16895242.html を前もって行っています。 データ参照(1):SQLのSELECTみたいにデータ取得する * Select()を使用する 例 private void button1_Click(object sender, EventArgs e) { int[] …
Linq to SQLについて Linqを使ったクエリ操作は、以下の3つの手順を踏む [1] データソースを取得する [2] クエリを作成する [3] クエリを実行する サンプル 事前準備 [1] SQL Serverにおいて、以下「サンプルテーブル」のようなテーブルを作成しておき、デー…