【发布时间】:2011-06-02 09:25:26
【问题描述】:
我正在处理的 LINQ 查询存在问题。这已经完美运行了一段时间,但我们回滚了数据库,现在它不起作用了。
基本上,我将新行插入到具有自动生成 BigInt PK 的表中。但是当 SubmitChanges 被调用时,我得到了这个错误:
空值不能分配给 System.Int64 类型的成员,即 不可为空的值类型
我查看了生成的 SQL,在插入之后问题似乎可能围绕着这个:
选择转换(大整数, SCOPE_IDENTITY()) AS [值]
这似乎返回 null,但我不知道为什么。表和 LINQ dmbl 都正确设置为自动生成 PK。
有什么想法吗?
编辑:经过一些调试,包括按照某人的建议在 SQL 中手动尝试插入,我偶然发现了一个非常奇怪的问题 -
'无法更新列或表达式'杰出''
Outstanding 是一个不可为空的小数 (9,2) 字段
【问题讨论】:
-
如果您在 SubmitChanges 调用上设置断点,记录是否会以正确的自动递增 ID 值插入到数据库中?
-
好的,如果你打开你的 DBML 文件,右键单击有问题的属性(即:生成 0 的 ID 列,然后单击“属性......生成的值”设置为 True ?
-
是的,它设置为 true - 这是我尝试的第一件事。
-
请包括您的表架构以及您的插入 sql
-
未完成的列是计算列吗?
标签: c# sql linq linq-to-sql