2016-08-03 12 views
0

私は答えられた質問をチェックしましたが、私が持っている問題に対処していません。ラムダ式の次の項目を取得

var carid = value; 
var car = db.Cars.Where(c => c.CarID == carid).OrderBy(c => c.CarID).Skip(1).FirstOrDefault(); 
Response.Write(car.CarID); 

それは、常に:私はちょうどテーブルの車から次の項目(SQL Serverデータベース)を取得する必要がありますし、私はちょっとスキップを無視EFに対して次のクエリを持って

は、の初期値と非常に同じ要素を返します。私はfirstordefaultが行く方法ではないと思う。

は正しいコードは、おそらく

var carid = value; 
var car = db.Cars.Where(c => c.CarID > carid).OrderBy(c=> c.CarID).FirstOrDefault(); 
//needs a null check before using car 
Response.Write(car.CarID); 

あります

+0

常に同じ結果を実行しますが、なぜ結果が変わると思われますか? – Stilgar

+0

ええ、**値は毎回変わります。変数です。 Thx –

+0

var carid = value;と言ってください。は、var carid = 123です。私はCarID 124でアイテムを取得する必要があります。私はそれをどのようにしますか?ありがとうございます –

答えて

1

ありがとう

(注意どこで>)がnullに対立するものとして、あなたの前のコードは、(値を返さなかったという事実)は、同じCarIDを持つ複数のレコードがあることを意味します。これは間違っているようです。

また、適切なコードでは、データベースにIDを自動インクリメントする必要があります。

+0

すばらしい答え:) –

関連する問題