2011-08-07 3 views
0

私はC#.NET4.0 WinformsでLINQ to Entitiesを学んでいます。エンティティへのLinqは、最初または最後の2million行から取得します。

私は最終的には2百万行以上のMSSQLデータベーステーブルを持っており、データベースの最初のレコードまたは最後のレコードを取り戻す必要があります。

私は最後のレコードを取得しようとしたが、それは私のために仕事をしたいとは思われない:(それは大丈夫構築しますが、実行時に、私は私がこれをやっている

LINQ to Entities does not recognize the method 'StockTraderRobotDT.IntradayFuturesTick  
Last[IntradayFuturesTick](System.Linq.IQueryable`1[StockTraderRobotDT.IntradayFuturesTick])' 
method, and this method cannot be translated into a store expression.    

を取得...

using (DataFeedEntities db = new DataFeedEntities()) 
{ 
    IntradayFuturesTick tick = db.IntradayFuturesTicks.Last(); 
} 

私はそれはおそらく、簡単な答えを知っているが、私はまだLINQのまわりで私の頭を取得しています。あなたの助けを

感謝を。

David

答えて

4

結果を降順でソートし、テイク拡張メソッドを使用する必要があります。

using (DataFeedEntities db = new DataFeedEntities()) 
{ 
    IntradayFuturesTick tick = db.IntradayFuturesTicks 
     .OrderByDescending(x => x.Id) 
     .Take(1) 
     .Single(); 
} 

Takeの代わりにFirstを使用することもできますが、データベースクエリで1つの結果しか返さないかどうかはわかりません。

+0

テイクメソッドの後、我々は単一のメソッドを使用しているただ一つのインスタンスを返しますが、私は、それは別の容器内に存在することになると思いますチャールズを取る、これは完璧だったはい、それは私が心配していた、魅力のように働きました私はそれが実際にそれをロードしていないことに気づいたが、それはMS SQLに必要な特定のTSQLを送信する:Dありがとう!!! – DeveloperDavid

関連する問題