Linq To Sql - 主键语法

时间:2013-10-31 06:11:04

标签: c# sql-server linq-to-sql

我正在使用LINQ To SQL并使用CreateDatabase方法创建我的数据库。我从MSDN了解到,创建自动生成的主键字段的语法是

[Column(Storage="_ID", IsPrimaryKey=true, AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsDbGenerated=true)]

有人可以解释一下AutoSync.OnInsert是什么意思吗?AutoSync枚举的其他成员的用法是什么? .IE。 AutoSync.Always,AutoSync.Default等。

当我已经将列指定为主键时,DbType中'Identity'这个词有什么意义?

1 个答案:

答案 0 :(得分:1)

标识表示ID列具有自动生成的值,该值将自动插入任何插入。当您第一次插入行时,ID的值将在下一次2时为1,依此类推。

<强>自动同步 指示公共语言运行库(CLR)在插入或更新操作后检索值。

选项:始终,从不,OnUpdate,OnInsert。

Source

从不:您永远不会在您的实体中获取ID(只要您不从数据库加载实体)。 始终意味着在每次插入或更新Linq2Sql操作后,它将从数据库中检索值。

Source