【ADO.NET Entity Framework】LINQ to Entityの使用
こんにちは、こだかです。
前回に引き続きまして、EntityDataModel(EDM)に対するクエリーをご紹介します。
1.EntityClientを直接扱う方法
・・・EntitySQL
2.ObjectQueryから問い合わせをかける方法
・・・EntitySQL
・・・Query builder メソッド
・・・Linq to Entity
今回は2のObjectService(ObjectQuery)をLINQからクエリーしてみます。
LINQは様々なデータソースを扱うことができる言語埋め込み型のクエリーですが、他のソース(Object,XML等)と同じようにEntityモデル自体を扱うことが可能です。
ObjectService経由で使用するのですが、型に注意して下さい。前回の例ではObjectQuery<T>型になりましたが、LINQを使用した場合、IQueryable<T>型になります。(もしくはLINQ to Object等で使用するIEnumerable <T>)
当然ながらObjectQuery<T>型のメンバを使用したい場合などは、キャストする必要があります。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.Common;
using System.Data.EntityClient;
using pubsModel;
using System.Data.Objects;
namespace EF1
{
class Program
{
static void Main(string[] args)
{
using (pubsEntities pubsContext = new pubsEntities())
{
var emps = from x in pubsContext.employee
where x.fname == "Maria"
orderby x.lname
select x;
foreach (employee emp in emps)
{
Console.WriteLine("[ObjectService] employeeName :{0} - {1}",
emp.fname, emp.lname);
}
pubsContext.Connection.Close();
}
}
}
}
こだかたろう
Comments
- Anonymous
September 25, 2007
PingBack from http://www.artofbam.com/wordpress/?p=2758