私はEntity FrameworkをMySQLで使用していますが、すべてのテーブルにはCHAR(36)型のID列があります。 EDMXファイルでは、彼らは、タイプ可能System.Guidの全てであり、SSDL XMLは次のようになります。シーケンスには、Guidと述語をMySql.Data.Entityと比較するときに要素が含まれません。
<EntityType Name="Accounts">
<Key>
<PropertyRef Name="ID" />
</Key>
<Property Name="ID" Type="guid" Nullable="false" />
...
私は(シングル、どこで、どれ、など)のいずれかの方法を使用しようとすると、それがあることを知らせると、InvalidOperationExceptionがスローされますシーケンスには要素が含まれていません。奇妙な部分は、デバッガの結果ビューを展開すると、要素が表示されます。 GUID値は同じであるため、正確に1つの要素を返す必要があります。私は以下の写真を含んでいます(より大きなものを見るために右クリックして保存してください)が、誰でもここで何が起こっているのか説明できますか? GUIDの行う試合:
(method argument) accountID:
{7767402f-9b29-4026-b40d-6eb991748f8c}
(should match) element in results view:
{7767402f-9b29-4026-b40d-6eb991748f8c}
は(SingleOrDefault 'に切り替えてみてください)'と 'null'なのでためのチェック' account'。次の行に移動し、accountがnullの場合、GUIDは一致しません。 –
これはこの問題とは関係ありません。もちろん、述語が失敗するため、nullを返すことになります。 ObjectSetには一致するIDを持つアカウントが1つしかない2つの結果が含まれているため、問題はありません。ここでの問題は、述語がこれに失敗している理由です。このアプリケーションはMSSQLとMySQLの両方をサポートするように構築されており、MSSQLに設定されている場合、コードは適切に動作します。それはMySql固有のものですが、なぜそれが失敗しているのか分かりません。画像を見ると、一致する結果セットが表示されます。 –