2009年12月21日月曜日

Linq to SQL

世間では.NET4.0がリリースされようとしている昨今。今更ながらLinq to SQL の勉強です。
Linq to SQLは、ADO.NET Entity Frameworkに取って代わられるとか言われてますが、気にしない。

(参考リンク)
http://msdn.microsoft.com/ja-jp/library/bb425822.aspx

上記ページでどうしても納得いかない箇所が…。DataContextにTable<T>を定義して、それに対してLinqでクエリを投げている箇所。

  1. public partial class Northwind : DataContext  
  2. {  
  3. public Table<Customer> Customers;  
  4. public Table<Order> Orders;  
  5. public Northwind(string connection): base(connection) {}  
  6. }  
  1. Northwind db = new Northwind("c:\\northwind\\northwnd.mdf");  
  2. var q =  
  3. from c in db.Customers  
  4. where c.City == "London"  
  5. select c;  
  6. foreach (var cust in q)  
  7. Console.WriteLine("id = {0}, City = {1}",cust.CustomerID, cust.City);  

DataContextにTable<Customer>をフィールドとして定義しているだけで、いつの間にか値が代入されている。おそらく、コンストラクタ内でリフレクションを使用して代入しているのだろうが、わかりにくい。

0 件のコメント: