sag*_*ani 0 linq linq-to-entities entity-framework
我有以下代码片段.其中我只想将PartyName作为字符串返回.但我得到错误:"不能隐含转换类型'System.Linq.Iqueryable到字符串"如果我想只返回字符串然后该怎么办?请帮我.
return objDatabase.FAPARs
.Where(f => (f.PARTY_CODE == "P003"))
.Select(f => f.PARTY_NAME);
An IQueryable<string>表示可以返回任意数量的字符串的查询.你想要一个字符串 - 所以你需要决定在各种情况下做什么:
允许您确定所有这些的方法集是:
Single-失败,如果没有正好一个结果SingleOrDefault - 如果有多个结果则失败,如果没有结果则返回nullFirst - 如果没有结果则失败,返回第一个FirstOrDefault - 如果没有结果,则返回null,或者返回第一个结果Last - 如果没有结果则失败,返回最后一个LastOrDefault - 如果没有结果,则返回null,或者返回多个结果在每种情况下,"失败"意味着"抛出异常".(IIRC总是如此InvalidOperationException,至少在对象的LINQ中,但我可能是错的.)
因此,如果您使用必须存在的ID进行查询(即如果不存在则会出现错误)则Single可能是合适的.如果您使用可能不存在的ID进行查询,请使用SingleOrDefault并检查返回值是否为空.如果您没有通过ID查询,您可能想要使用FirstOrDefault或只是迭代结果.
(注意,默认值null是由于这是一个返回字符串的查询,而字符串是一个引用类型.通常它是元素类型的默认值 - 所以如果你有一个IQueryable<int>,则返回的默认值为0.)
| 归档时间: |
|
| 查看次数: |
3436 次 |
| 最近记录: |