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

时间:2009-09-17 15:42:49

标签: sql linq

我有一个LINQ to SQL类,我正在阅读List。

从表中读入时,我收到错误“字符串必须正好是1个字符”。

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

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

谢谢。

2 个答案:

答案 0 :(得分:1)

不幸的是,该错误不包含任何有助于指示插入中哪个列失败的信息。我的最佳解决方案是打开SQL框的分析。然后,您可以检查实际发送到服务器的SQL。有了这个,以及大量的试验和错误,您可能会发现哪个列引发了错误。

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

答案 1 :(得分:1)

我想出了一种合理的(虽然不是自动化的)方法 - 通过删除LINQ .dbml文件中的一半列来进行二进制搜索(可以使用鼠标点击并切换以进行多项选择)然后运行程序。

一旦下至大约5个条目,进行线性搜索(由于新表的点击复制粘贴的开销,二进制搜索的开销意味着线性搜索对于大小N更好。实际数量取决于您的应用程序。)< / p>

这在大约10分钟内将其缩小到有问题的列。