我在SQL 2005中使用Linq to SQL。我正在解析一个大的固定宽度文件,并通过使用属性属性映射到数据库的自定义实体将数据导入SQL。
该程序在抛出此错误之前运行大约240条记录。我检查了列(它们全部四个)和它试图输入的数据,它不应该抛出这个错误。我甚至已经把varchar中的列更改为文本,但它仍然会抛出错误。当我手动插入相同的值时,它们插入正常。
Linq to SQL中是否存在已知错误或任何内容?我在每个要插入的循环上调用context.submitall()。我read .NET 3.5 SP1提供了来自SQL的更好的错误消息,但我仍然没有看到任何内容。
感谢您的帮助。
答案 0 :(得分:0)
您是否可能在构建Linq to SQL类之后更改了架构?除非在设计器中删除/重新创建类或手动编辑设计器生成的类的属性,否则在更改SQL模式时不会更新设计器实体。我知道它会跟踪类中字符串(varchar)列的列宽 - 虽然我不知道它是否在提交之前实际检查它,或者只是将它作为任何验证的参考。我已经看到类似自动生成的ID这样的问题,通过更新设计器中的类来解决。
答案 1 :(得分:0)
好吧,我发现了这个bug,这绝对不是Linq或SQL的问题。我正在砍掉并更改另一个对象的属性,没有意识到它现在通过Linq附加到SQL,并且正是该对象抛出了错误。
获得的经验:除非您真的想要更改它们,否则不要直接在对象上更改属性,特别是如果它附加到数据上下文中。