FirstName、LastName、DOBの各プロパティと、Idプロパティ(プライマリキー)を持つPersonのような単純なクラスが与えられています。最初にEFコードで論理重複を防ぐ方法はありますか?
作成アクションを呼び出すと、渡すモデルがFirstName、LastName、およびDOBプロパティで既に存在するレコードと一致するかどうかを確認する検証を実行したいと考えています。この場合、Idプロパティを除外したいのは、アプリケーションに入ってくるモデルにまだモデルがなく、誤認を生成するためです。
現在、私はちょうど確かに動作しますが、完全に、よく、エレガントではありませんので...
if (!context.People.Any(x => x.FirstName == model.FirstName && x.LastName ==
model.LastName && x.DOB == model.DOB))
のような任意の拡張メソッドを使用しています。
確かに良い方法がありますか?
DBにユニークな制約があり、コードで適切なエラー処理が行われているようなことは避けることができます。値が保持される前に重複をチェックしたいなら、 'Any()'は、まったくエレガントではありませんが、完全にOKです。 –
[Entity Frameworkにオブジェクトが存在するかどうかを確認する最善の方法は?](http://stackoverflow.com/questions/1802286/best-way-to-check-if-object-exists-inentity-framework) –
これは重複していません、あなたが参照した質問の答えは、私が明示的に避けたいと言ったものです – keithwarren7