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
ですか?
ありがとう。