2013-10-31 107 views
0

我正在使用LINQ To SQL並使用CreateDatabase方法創建我的數據庫。我從MSDN明白語法來創建一個自動生成的主鍵字段是Linq To Sql - 主鍵語法

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

有人能解釋我這是什麼由AutoSync.OnInsert意思,什麼是自動同步枚舉的其他成員的使用情況如何? .IE。 AutoSync.Always,AutoSync.Default等。

當我已經指定列作爲主鍵時,DbType中的'Identity'這個詞有什麼意義?

+0

標識表示ID列具有自動生成的值,將自動插入任何插入。當您第一次插入一行時,下一次2時ID的值將爲1,依此類推。 – Dannydust

+0

對於自動同步,請參閱以下網站:http://msdn.microsoft.com/en-us/library/system.data.linq.mapping.autosync.aspx 它指定Linq2Sql何時會獲得Id的值。在你的情況下,它只會在插入操作後檢索生成的Id。 – Dannydust

+0

MSDN並沒有太多解釋。例如,總是返回值,自動選擇值並從不返回值有什麼區別? – Curious

回答

1

標識表示ID列有一個自動生成的值,將自動插入任何插入。當您第一次插入一行時,下一次2時ID的值將爲1,依此類推。

AutoSync 指示公共語言運行庫(CLR)在插入或更新操作後檢索值。

選項:總是,從不,OnUpdate,OnInsert。

Source

從不:你將永遠不會回到你的實體的ID(只要你將不會從數據庫中加載實體)。總是意味着在每次插入或更新Linq2Sql操作後,它都會從數據庫中檢索值。

Source