EFからEFに移行しLINQ2SQLていて、いくつかの基本的なラムダ式で問題が発生しています。
次の例では、クライアント関連データの基本的なリストを取得しようとしています。LINQ2SQLデータコンテキストを使用して実行する場合、このステートメントは正常に機能します。
var data = db.Clients.Select(c => c.Id + ":" + c.Firstname);
foreach (var item in data)
{
}
EFデータコンテキストに対して実行すると、次のようになります。
NotSupportedException - Unable to cast the type 'System.Int32' to type 'System.Object'. LINQ to Entities only supports casting EDM primitive or enumeration types.
NB:Idフィールドは整数です。
ToArray()db.Clientsの後に追加することでエラーを修正することができました。
誰かが説明してもらえますか。
a)EFで機能させるには、ソリューション内の既存のすべてのステートメントにこの種のコード変更を加える必要があります。と
b)EFが問題がなかったのに、なぜ基本的な連結でそれほど問題が発生するのLINQ2SQLですか?
ありがとう。