为什么LINQ'的默认ID(主键)ReadOnly=False ?

本文关键字:主键 ReadOnly False ID LINQ 默认 为什么 | 更新日期: 2023-09-27 18:07:22

如果我在MS SQL数据库中创建一个表,其中ID列设置为Identity,自动增量和主键。为什么相关的LINQ对象创建时将该列的只读属性设置为False?这使得看起来您可以在LINQ中插入ID,但实际上提供给ID字段的值只是被丢弃,并且数据库自动编号该列。当尝试插入时,LINQ不会产生错误。

LINQ中的ID列显示为:

自动生成值= True

主键= True

只读= False(为什么?该值不能插入数据库!)

我可以理解它的ID值在SQL设置为允许插入。但是在这种情况下,这些值被忽略,并且没有抛出错误。这种类型的自动生成列的只读值默认情况下没有设置为True,是否有原因?

谢谢!

为什么LINQ'的默认ID(主键)ReadOnly=False ?

仅仅因为一个值是自动生成的,并不意味着你不能手动插入它。您只需要执行以下命令:

SET IDENTITY_INSERT table ON

Linq没有办法确定你不允许的身份插入,特别是因为它是常见的打开这个只是几个语句,然后把它关闭,所以默认情况下,它似乎让你。如果您是程序员,了解更多,只需关闭标志。