せずにFindを使用してdbSetのレコードを検索します。現在の状況で 私は彼のIDを使用することはできません。私は、ユーザーテーブルを持っている主キー
私は完全なLINQクエリを使用する必要がありますか?例えば私も自分のEDMXの主キーとしてユーザー名を定義しようとしたが、それは次のようなエラーが生じた
var user = from users in myDBContext.Users.Find(Username)
where users.Username == username
select users
:
Properties referred by the Principal Role User must be exactly identical to the key of the EntityType CamelotShiftManagementModel.User referred to by the Principal Role in the relationship constraint for Relationship CamelotShiftManagementModel.AssociationUserFK1. Make sure all the key properties are specified in the Principal Role. C:\Code\CamelotShiftManagement\CamelotShiftManagement\Models\CamelotDB.edmx 278 11 CamelotShiftManagement
さらに良い! ..ありがとう。 – Mortalus
代わりに 'FirstOrDefault'を使用する方が良いでしょうか? 'SingleOrDefault'メソッドについての私の理解は、* whole *テーブルをブラウズして、条件に一致するレコードが1つだけであることを確認することです。 OPが望むものではないかもしれません。 – Crono
@Cronoはい、FirstOrDefaultと比較するとFirstOrDefaultのパフォーマンスが良いと考えています。しかし、ここで私はこれらの2つの方法の間で選択を行うべき期待される結果に応じて考える。単一の結果しか必要とせず、複数のシーケンスが存在する場合は例外が発生することを期待している場合は、SinleOrDefaultを使用します。それ以外の場合はFirstOrDefaultを使用します。私はこの文脈で私の答えを更新します。 –