LINQ to Entities不支持指定的类型成员FullName

时间:2013-07-26 10:21:42

标签: linq entity-framework

我收到错误" LINQ to Entities"不支持指定的类型成员FullName。当使用select d.FullName时,是因为它不是表的一部分吗?

我该如何解决这个问题?

由于

用户类
public partial class tblUser
{
    public tblUser()
    {
        this.Equipment = new HashSet<tblEquipment>();
    }

    public int ID { get; set; }
    public string Forename { get; set; }
    public string Surname { get; set; }

    public string FullName { get { return Forename + " " + Surname; } }

查询错误

string[] arrUsers = (from d in db.tblUsers select d.FullName).ToArray();

2 个答案:

答案 0 :(得分:3)

您必须手动选择它:

string[] arrUsers = (from d in db.tblUsers select (d.Forename ?? "") + " " + (d.Surname ?? "")).ToArray();

答案 1 :(得分:2)

因为它在你的数据库中不存在,所以linq2entities无法生成正确的sql

所以

<强>解决方法1

在您的查询中连接,使用合并运算符(如果不这样,并且一个部分为NULL,则全部为null)。

select d.ForeName ?? string.Empty + " " + d.Surname ?? string.Empty

<强>溶液2

  select d.Forename, d.Surname

,当您枚举了Queryable时,您将能够使用FullName

<强> Solution3

使用计算列