Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#如果值不是Null,为什么Linq会因为Null而崩溃?_C#_Linq_Linq To Sql - Fatal编程技术网

C#如果值不是Null,为什么Linq会因为Null而崩溃?

C#如果值不是Null,为什么Linq会因为Null而崩溃?,c#,linq,linq-to-sql,C#,Linq,Linq To Sql,我有一个简单的三表参考。看起来很清楚。这些关联是在DBML中创建的。它们实际上不是表定义中的外键。为什么?说来话长。相信我,当我说,我已经打过那场战斗,并且失败了 当我尝试使用LINQ添加新的文件类型记录时,它会崩溃,错误为:无法将值NULL插入到列Id、表文件类型中。 但是如果你注意到代码,Id正在设置中。我已经检查了这个值,它不是空的。它是一个整数。我错过了什么或做错了什么 我确实检查了以确保存在正确ID的FileCategory记录。还有什么我不知道的吗?我以前见过这样的东西 当您只分配

我有一个简单的三表参考。看起来很清楚。这些关联是在DBML中创建的。它们实际上不是表定义中的外键。为什么?说来话长。相信我,当我说,我已经打过那场战斗,并且失败了

当我尝试使用LINQ添加新的文件类型记录时,它会崩溃,错误为:无法将值NULL插入到列Id、表文件类型中。

但是如果你注意到代码,Id正在设置中。我已经检查了这个值,它不是空的。它是一个整数。我错过了什么或做错了什么


我确实检查了以确保存在正确ID的FileCategory记录。还有什么我不知道的吗?

我以前见过这样的东西

当您只分配“id”而不分配相关对象时,就会发生这种情况

请尝试以下操作:

new FileType
{
  FileCategory = def.Category,
  ...
}

在表映射中,字段是否标记为“自动生成值” 在属性窗格中?我对此有插入/更新问题 在…之前-3月7日星期三6点52分


我会为此给他一些建议,但他留下的只是评论,而不是正式的回答

它可能是一个自动递增字段吗?在这种情况下,您不必为插入记录设置ID。否。我确保它只是一个字段。它没有为其定义标识规范。我把它当作一个键,但实际上,它只是一个整数。使用Management studio,我可以随意设置和更改字段。您可以向我们展示从该代码生成的T-SQL吗?因此,文件类型只是一个没有任何约束的普通表吗?与表映射中的create table FileType(ID int not null主键,…CreateInspection int not null)类似,属性窗格中的字段是否标记为“自动生成值”?我以前有过插入/更新问题……我似乎每次都忘记了这一点。谢谢你的提醒。:)
new FileType
{
  FileCategory = def.Category,
  ...
}