【问题标题】:Selecting values from IQueryable with IsNullOrWhitespace check使用 IsNullOrWhitespace 检查从 IQueryable 中选择值
【发布时间】:2012-11-28 13:52:29
【问题描述】:

我正在尝试使用 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.

解决办法是什么?

【问题讨论】:

    标签: linq linq-to-entities iqueryable


    【解决方案1】:

    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();
    

    【讨论】:

    • 好吧,我已经写了这个,但我正在寻找更简洁的东西。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-21
    • 1970-01-01
    • 2019-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多