LINQ to SQL and Null strings, how do I use Contains?(LINQ to SQL 和空字符串,我如何使用包含?)
问题描述
这里是查询
from a in this._addresses
where a.Street.Contains(street) || a.StreetAdditional.Contains(streetAdditional)
select a).ToList<Address>()
如果 where 子句中的两个属性都有值,这可以正常工作,但例如,如果 a.StreetAdditional 为空(大多数情况下),我将收到空引用异常.
if both properties in the where clause have values this works fine, but if for example, a.StreetAdditional is null (Most of the times), I will get a null reference exception.
有办法解决这个问题吗?
Is there a work around this?
谢谢,
推荐答案
最明显的一个:
from a in this._addresses
where (a.Street != null && a.Street.Contains(street)) || (a.StreetAdditional != null && a.StreetAdditional.Contains(streetAdditional))
select a).ToList<Address>()
或者,您可以为 Contains 编写一个扩展方法,该方法接受空参数而不会出错.有人可能会说,有这样的方法不是很好,因为它看起来像一个普通的方法调用,但允许有空值(从而搁置正常的空检查实践).
Alternatively you could write an extension method for Contains that accepts a null argument without error. Some might say that it is not so pretty to have such a method, because it looks like a normal method call, but is allowed for null values (thereby setting aside normal null-checking practices).
这篇关于LINQ to SQL 和空字符串,我如何使用包含?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:LINQ to SQL 和空字符串,我如何使用包含?
基础教程推荐
- JSON.NET 中基于属性的类型解析 2022-01-01
- 全局 ASAX - 获取服务器名称 2022-01-01
- 是否可以在 asp classic 和 asp.net 之间共享会话状态 2022-01-01
- 将事件 TextChanged 分配给表单中的所有文本框 2022-01-01
- 在 VS2010 中的 Post Build 事件中将 bin 文件复制到物 2022-01-01
- 经典 Asp 中的 ResolveUrl/Url.Content 等效项 2022-01-01
- 错误“此流不支持搜索操作"在 C# 中 2022-01-01
- 如何动态获取文本框中datagridview列的总和 2022-01-01
- 从 VS 2017 .NET Core 项目的发布目录中排除文件 2022-01-01
- 首先创建代码,多对多,关联表中的附加字段 2022-01-01
