【发布时间】:2013-10-31 06:11:03
【问题描述】:
我正在使用 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 表示 ID 列有一个自动生成的值,该值将在任何插入时自动插入。当您第一次插入一行时,ID 的值将在下一次为 2 时为 1,依此类推。
-
Autosync 参考这个站点:msdn.microsoft.com/en-us/library/… 它指定 Linq2Sql 何时获取 Id 的值。在您的情况下,它只会在插入操作之后检索生成的 Id。
-
MSDN 解释不多。例如,总是返回值、自动选择值和从不返回值有什么区别?
-
我发布了我的 cmets 的摘要作为答案。
标签: c# sql-server linq-to-sql