我正在尝试使用IQueryable
表达式执行以下操作:
(from Person p in s
select new
{
label = p.FirstName + " "
+ (string.IsNullOrWhiteSpace(p.MiddleName) ? p.MiddleName + " " : "")
+ p.LastName,
value = p.Id
}).ToList();
我收到以下错误:
LINQ to Entities does not recognize the method 'Boolean
IsNullOrWhiteSpace(System.String)' method, and this method cannot be
translated into a store expression.
有什么解决方案?
最佳答案
String.IsNullOrWhitespace是字符串对象的静态函数,不能与实体框架查询一起使用,而p.FirstName.StartsWith("S")
是实体属性的一种方法,可以使用。
要回答您的问题,您将必须自己滚动内联。试试这个:
(from Person p in s
select new
{
label = p.FirstName + " "
+ ((p.MiddleName != null && p.MiddleName != string.Empty) ? p.MiddleName + " " : "")
+ p.LastName,
value = p.Id
}).ToList();