【问题标题】:string length failing in Azure using LINQ使用 LINQ 在 Azure 中的字符串长度失败
【发布时间】:2014-01-02 00:54:18
【问题描述】:

我在使用 SQL Azure 时遇到问题,如果数据库是 SQL Server 2012,则以下带有 EF 代码的 LINQ 可以正常工作

var userLength = users.Select(n => new { n.FirstName.Length });

但是,如果我将它指向一个 Azure 数据库,我会得到 ​​p>

"base = {"转换为值类型 'Int32' 失败,因为具体化值为 null。结果类型的泛型参数或查询必须使用可为空的类型。"}"

有什么想法吗?

【问题讨论】:

    标签: c# linq entity-framework azure


    【解决方案1】:

    数据库是否包含相同的数据?

    也许其中一个用户没有在 Azure 数据库中设置名字?

    我猜你是在迭代 usersLength 时收到这个异常的?它是在第一次迭代时抛出还是稍后抛出?

    这就是我认为正在发生的事情(我在这里使用 LINQ to Objects)

    您可以像这样对其进行编辑,使其为空元素(名字)返回 0:

    如果你有 LinqPad,你可以下载这两个代码 sn-ps(它们会在 LinqPad 中自动打开):

    http://share.linqpad.net/2pfjqf.linq

    http://share.linqpad.net/vp96kf.linq

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-19
      • 1970-01-01
      • 2018-07-19
      • 1970-01-01
      相关资源
      最近更新 更多