我遇到SQL Azure问题,如果数据库是SQL Server 2012,以下带有EF代码的LINQ可以正常工作
var userLength = users.Select(n => new { n.FirstName.Length });
但是,如果我将它指向Azure数据库并且我得到了
“base = {”转换为值类型'Int32'失败,因为具体化值为null。结果类型的泛型参数或查询必须使用可空类型。“}”
有什么想法吗?
答案 0 :(得分:2)
数据库是否包含相同的数据?
也许其中一个用户在Azure数据库中没有设置FirstName?
我想当你在usersLength上迭代你收到此异常时?它是在第一次迭代时抛出还是稍后抛出?
这就是我认为正在发生的事情(我在这里使用LINQ to Objects)
您可以像这样编辑它,使其为null元素(FirstNames)返回0:
如果您有LinqPad,可以下载这两个代码段(它们将在LinqPad中自动打开):