Linq:检查字符串列是否有值(即.不为null或为空)

ing*_*939 5 linq vb.net dynamics-crm-2011

不确定这是否是在Linq实现这一目标的最佳方式.

我正在尝试选择CRM 2011中的联系人记录,其中EMailAddress1包含一个值.我尝试的以下WHERE子句都导致异常:

Where c.EMailAddress1 > ""

Where Not String.IsNullOrEmpty(c.EMailAddress1)
Run Code Online (Sandbox Code Playgroud)

所以我最终尝试了这个,这似乎工作正常:

Where Not c.EMailAddress1.Equals(String.Empty) _
And Not c.EMailAddress1.Equals(Nothing)
Run Code Online (Sandbox Code Playgroud)

但我不确定这是否是最有效的方法......它似乎并不优雅.有没有更简洁的方法来检查字符串列是否有值?

小智 5

正如这里所说 Linq to CRM 真的很有限。这就是您不能使用 String.IsNullOrEmpty 的原因。

但是,您应该尝试这样做:

Where c.EMailAddress1 IsNot Nothing
Run Code Online (Sandbox Code Playgroud)

当一个字段为空时,它在数据库中被设置为空(从不为空)。这条线应该足以满足您的情况。

问候,

凯文