2017-08-24 4 views
0

Entity Frameworkを使用してOracleデータベースにキーが存在するかどうかを判断する必要があります。私のフロントエンドはこの呼び出しをたくさん使っていますが、どちらの方法が最速になるのだろうと思っていましたか?最初に一致するレコードを取得し、nullかどうかを調べる必要があります。キーの数をチェックして、それが1より大きいかどうかを確認するか、Anyを使用しますか?それとも私が考えていない解決策がありますか?Entity Framework 6を​​使用するOracle Databaseにレコードが存在するかどうかを確認する最速の方法

+0

キーであれば、 'context.Entity.Find(keyValue)'を使わないのはなぜですか?また、レコードがコンテキスト内にある場合、データベースを呼び出すこともありません。 –

答えて

1

カウントする必要がないので、Anyをお勧めします。 COUNT(*)より速いEXISTSステートメントに変換する必要があります。

多分何かのように:

var exists = ctx.MyEntities.Where(x => x.Id == ...).Any(); 

は、それがパフォーマンスを傷つけるので、あなたが唯一のレコードが存在するかどうかを確認したいと、(例えば、 Findを使用して)あなたのエンティティをインスタンス化しないでください。

関連する問題