代码之家  ›  专栏  ›  技术社区  ›  Larry Watanabe

Linq to SQL读取错误-如何确定哪个列失败?

  •  0
  • Larry Watanabe  · 技术社区  · 16 年前

    我有一个linq-to-sql类,我正在将其读到一个列表中。

    从表中读取时,我得到一个错误:“字符串的长度必须正好为1个字符”。

    我已经查看了该文件的表定义,以及该表的.dbml文件,并且没有正好1个字符长的字段。

    表(旧表)有很多字段。如何轻松确定导致问题的字段?

    谢谢您。

    2 回复  |  直到 16 年前
        1
  •  1
  •   Jarrett Meyer    16 年前

    不幸的是,错误不包含任何有助于指示插入中哪一列失败的内容。我拥有的最佳解决方案是打开SQL框的分析。然后您可以检查实际发送到服务器的SQL。通过这个,以及大量的尝试和错误,您可能会发现哪个列正在抛出错误。

    您可能希望看到用System.ComponentModel.DataAnnotations(及其相关属性)装饰类,并验证SQL在发送到服务器之前是否会通过。麻烦?对。但可用的错误代码和 非常非常 有价值的。

        2
  •  1
  •   Larry Watanabe    16 年前

    我找到了一个合理的(虽然不是自动的)方法——通过从linq.dbml文件中删除一半的列(可以使用mouseclick和shift进行多次选择),然后运行程序对列进行二进制搜索。

    一旦减少到大约5个条目,就进行线性搜索(由于新表的单击复制粘贴的开销,二进制搜索的开销意味着线性搜索对于大小n更好。实际的数字取决于您的应用程序)。

    这在大约10分钟内把范围缩小到有问题的专栏。