2008年03月11日

LINQ to SQLで便利だと思うところ。

  
O/Rデザイナーが自動で生成してくれるエンティティクラスには、テーブル間のリレーションが、そのままクラス間のリレーションとして表現されているので、クエリ式を書く場合にも、これが利用できる。

リレーションを使わないと、2つのテーブルを結合するのに、C#3.0だと、

 var query = from o in db.Orders
join c in db.Customers on o.CustomerID equals c.CustomerID
where c.City == "London"
select new {
o.OrderID, o.OrderDate, c.CompanyName
};

と書くことになると思うが、

リレーションを使うと、

 var query = from o in db.Orders
where o.Customer.City == "London"
select new {
o.OrderID, o.OrderDate, o.Customer.CompanyName
};

と書ける。
SQLの弱い僕には、ものすごくありがたい機能だ。
どんなSQLが生成されるのかは、

db.Log = Console.Out;

としておけば、確認できる。


 

この記事へのトラックバックURL

http://trackback.blogsys.jp/livedoor/gushwell/51438116