2017-06-18 1 views
0

こんにちは私は、Entity Framework 5.0でVisual Studio 2015を使用しています。Entity Frameworkを使用して特定の条件に関するデータを読み取る

私は、次のようにテーブル内のいくつかのデータを持っている:

が、私は1を読んで、と比較したいです2,3,4,5 もう一度同じですが今回は2を読み、読み、今再び3,4,5 と比較したが、この時間は、3を読んで、今もう一度読ん4,5 と比較したが、この時間は4を読み、5

と比較する任意の式があります1の後にすべてのデータを読み取ってから2の後にデータを読み込み、3,4,5のように読み込み、データ3を読み込む4,5など...

+1

シークエンスIDを持っている場合(あなたのexapleから)、シンプルな方法でそれらを注文し、最初のものを取得し、id>が最初のもの以外のものをすべて取得します。 – jpgrassi

答えて

0

比較したい行がid次の例では、説明(5)のためにハードコードされていますが、次の操作を行うことができます。

var subData = data.Skip(data.Count(x => x.Id <= 5)).ToList(); 

このコードwi Id = 5の行の後のすべてのデータを含むレコードのリストを取得します。

1

データの量やシーケンシャルな識別子がある場合は何も言及していません。

すべてを比較する必要がある場合は、これを行う簡単な方法は、データを順序付けしてループすることです。

var entities = dbContext.Entity.OrderBy(e => e.Id).ToList(); 

foreach (var currentEntity in entities) 
{ 
    // all other records except current... 
    var allRecords = dbContext.Entity.Where(e => e.Id > currentEntity.Id).ToList(); 

    // do your compare stuff... 
} 

データは既に注文されているので、foreachは次のデータを取得します。しかし、逐次IDがない場合でも、同じコードを適用できますが、あなたに合った別のフィールドに並べ替えを適用するだけです。日付など)。

「ワンタイム比較」を行う場合は、IDを受け取って残りの部分と比較したい場合はもちろん、foreachは必要ありません。 idで注文し、内側のクエリを使用するか、Skipを使用してください(@Mohamedとして提案されています)。

関連する問題