是的,只要不作为AutoSync和IsDbGenerated的ColumnAttribute设置为AutoSync.OnInsert和true分别.
从而:
[Column(
Storage="_Id",
AutoSync=AutoSync.OnInsert,
DbType="Int NOT NULL IDENTITY",
IsPrimaryKey=true,
IsDbGenerated=true
)]
Run Code Online (Sandbox Code Playgroud)
这些设置可在设计器中访问.AutoSync.OnInsert并且true是默认设置.
在这里你可以看到这个:
var db = new MessageDataContext();
db.Log = Console.Out;
Message m = new Message();
m.Text = "Hello, world!";
db.Messages.InsertOnSubmit(m);
db.SubmitChanges();
Run Code Online (Sandbox Code Playgroud)
这里的表Message有两列Id(自动编号PK列)和Text.这会导致在控制台上打印以下内容:
INSERT INTO [dbo].[Message]([Text])
VALUES (@p0)
SELECT CONVERT(Int,SCOPE_IDENTITY()) AS [value]
-- @p0: Input VarChar (Size = 13; Prec = 0; Scale = 0) [Hello, world!]
-- Context: SqlProvider(Sql2005) Model: AttributedMetaModel Build: 3.5.30729.1
Run Code Online (Sandbox Code Playgroud)
第二个SQL语句显示DataContext自动检索分配给Message我们插入数据库的标识.
从而:
db.Messages.InsertOnSubmit(m);
db.SubmitChanges();
Console.WriteLine(m.Id);
Run Code Online (Sandbox Code Playgroud)
将打印Id分配给m.
| 归档时间: |
|
| 查看次数: |
1621 次 |
| 最近记录: |