- - PR -
ADO.NET
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2009-03-28 02:12
お世話になっております。
まことと申します。 いつも参考にさせていただいております。 現在、ADO.NET Data Serviceを使用したSilverlightの開発を行っております。 Silverlight側より、サービス参照にてADO.NET Data Serviceを追加しまして データの取得ができるところまでは確認しております。 そこで次に日付でデータを抽出できないかを以下の構文を作成しましたところ、エラーが発生してしまいました。 ■開発環境 Visutal Studio 2008 SP1 SQL Server 2008 Developer Windows Vista Bussiness ■テストプログラム ----------------------------------------------------------------- public Page() { InitializeComponent(); NorthwindEntities ctx = new NorthwindEntities(new Uri("Northwind.svc",UriKind.Relative)); var qry = from p in ctx.Orders orderby p.OrderDate where p.OrderDate < DateTime.Now select p; DataServiceQuery<Orders> productQuery = (DataServiceQuery<Orders>)qry; productQuery.BeginExecute(new AsyncCallback(OnLoadComplete), productQuery); } // 結果を取得する private void OnLoadComplete(IAsyncResult asyncResult) { DataServiceQuery<Orders> query = (DataServiceQuery<Orders>)asyncResult.AsyncState; // ここでエラーになる IEnumerable<Orders> orders = query.EndExecute(asyncResult); } ----------------------------------------------------------------- ■エラー内容(Inner Exception) <?xml version="1.0" encoding="utf-8" standalone="yes"?> <error xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"> <code></code> <message xml:lang="ja-JP">認識されない 'Edm.DateTime' リテラル 'datetime'2009-03-28T01:55:41.488 09:00'' が '13' にあります。</message> </error> ■解析したこと □WebServiceに投げるURLは以下の内容でした。 {http://localhost:56432/Northwind.svc/Orders()? $orderby=OrderDate&$filter=OrderDate lt datetime'2009-03-28T02:06:33.495+09:00'} □qry作成に以下のように修正しましたら意図したデータではありませんが取得はできました。 var qry = from p in ctx.Orders orderby p.OrderDate where p.OrderDate != null && ((DateTime)p.OrderDate).Year < dt.Date.Year select p; ■推測される原因 エラー内容にありますが datetime'2009-03-28T01:55:41.488 09:00'の文字'T'が悪さをしているのではないかと考えております。 が、どのように回避すればよいのかがわかりません。 (もしかしましたら全然別の原因かもしれませんが) もし解決手法を知っておられる方がございましたらご教授願えないでしょうか。 以上、よろしくお願いいたします。 |
1