LINQ to实体中不支持指定的类型成员FullName

LINQ to实体中不支持指定的类型成员FullName,linq,entity-framework,Linq,Entity Framework,使用select d.FullName时,我收到错误“LINQ to Entities中不支持指定的类型成员FullName”,是因为它不是表的一部分吗 我该如何解决这个问题 谢谢 用户类 您必须手动选择它: string[] arrUsers = (from d in db.tblUsers select (d.Forename ?? "") + " " + (d.Surname ?? "")).ToArray(); 您必须手动选择它: string[] arrUsers = (from d

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

我该如何解决这个问题

谢谢

用户类
您必须手动选择它:

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

您必须手动选择它:

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

因为它不存在于数据库中,所以LINQ2实体无法生成正确的sql

所以

解决方案1

在查询中使用合并运算符连接(如果不连接,并且一部分为NULL,则所有部分都为NULL)

解决方案2

  select d.Forename, d.Surname
当您已经枚举了可查询项时,您将能够使用
FullName

解决方案3


使用计算列

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

所以

解决方案1

在查询中使用合并运算符连接(如果不连接,并且一部分为NULL,则所有部分都为NULL)

解决方案2

  select d.Forename, d.Surname
当您已经枚举了可查询项时,您将能够使用
FullName

解决方案3


使用计算列

只是一句备注:在进行连接时要小心使用空值。@RaphaëlAlthaus
NULL
如果
d.Forname
为空而
d.姓氏
不为空,则可以(或应该)使用,例如,您将得到一个空结果,不是
d.姓
,因为它将生成类似
selectnull+''+'test'的内容并且您可以测试这种query@RaphaëlAlthaus好的,我会解决这个问题。只是一句话:在进行连接时要小心空值。@RaphaëlAlthaus
NULL
如果
d.Forname
为空而
d.lasname
不为空,则可以(或应该)使用,例如,您将得到一个空结果,不是
d.姓
,因为它将生成类似
selectnull+''+'test'的内容并且您可以测试这种query@RaphaëlAlthaus好的,我会解决的。
  select d.Forename, d.Surname