EF5コードファーストモデルを使用しています。次のEntityFrameworkクエリについて考えてみます。
var results = from i in context.Table1
where i.ID == Id // passed in
select new TableInfo()
{
Name = i.Name,
ActionDate = i.Action.ActionDate,
CreatedDate = i.Action.CreatedDate,
CreatedBy = i.Action.CreatedBy.FullName
};
FullNameプロパティは、次のように定義されます。
[NotMapped]
[Display(Name = "Full Name")]
public string FullName
{
get
{
string ret = string.Empty;
if (String.IsNullOrEmpty(LAST_NAME) || String.IsNullOrEmpty(FIRST_NAME))
{
return "";
}
else
{
return string.Format("{0}, {1}", LAST_NAME, FIRST_NAME);
}
}
}
エラーが発生します:
指定されたタイプメンバー'FullName'は、LINQtoEntitiesではサポートされていません。初期化子、エンティティメンバー、およびエンティティナビゲーションプロパティのみがサポートされます。
同じことを行う拡張メソッドを作成すると、同様のエラーが発生します。だから問題は、EFがデータストアでこれらのものを実行しようとしないようにするにはどうすればよいですか?