私は Linq と C# を初めて使用します。この非常に単純な問題を解決するために非常に長い時間を費やしてきました。
次のコードがあります。
var currcard = from c in db.CreditCards where c.Id == cid select c;
db はデータベース コンテキストで、credit cards はそのデータベース内のテーブルです。
これにより、複数のレコードが返される可能性があり、それを foreach を使用して反復処理します。返されるレコードがある場合、すべてがうまく機能します。
ただし、レコードが返されず、「シーケンスに要素が含まれていません」というエラーが表示されることがあります。FirstOrDefault または SingleOrDefault を使用したくありません。返される場合はすべてのレコードが必要だからです。ただし、レコードが返されない場合にnullが必要な場合に、これらの関数に相当するものを使用することはできません。
解決策が単純でなかったとしても、私は驚かないでしょう。時々、c# は複雑すぎるように見えます。
編集:最後に、割り当てステートメントや反復ブロックではなく、コンテキストの SaveChanges メソッドによってエラーがスローされていることがわかりました。Any キーワードを使用すると、最終的に問題が発見されたため、別の問題であることが判明したにもかかわらず、その答えを正しいものとしてマークしました。しかし、あなたの助けに感謝します。