こんにちは、こだかです。
前回に引き続きまして、EntityDataModel(EDM)に対するクエリーをご紹介します。
1.EntityClientを直接扱う方法 ・・・EntitySQL2.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(); }
} }}
こだかたろう