`
bulote
  • 浏览: 1305064 次
文章分类
社区版块
存档分类
最新评论

linq to sql插入操作取回自增的ID

 
阅读更多

<wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

首先我们来看一个简单的插入操作:

<wbr><wbr><wbr><wbr><wbr><wbr><wbr> TestDataContext dc = new TestDataContext();<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> protected void Page_Load(object sender, EventArgs e)<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr> {<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> tbl_User user = new tbl_User();<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> user.uname = "徐越";<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> user.upwd = "111";<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> dc.tbl_User.InsertOnSubmit(user);<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> dc.SubmitChanges();</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><strong>int id = user.uid;<br></strong><wbr><wbr><wbr><wbr><wbr><wbr><wbr> }</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr></wbr>

int id = user.uid 这句话就能拿到刚刚插入的值!这么神奇,为什么呢?

<wbr></wbr>

1 首先我们在数据库中对uid设置的时候,就设置它为主键,然后为表示列,自增长,种子是1,增长量是1等。

2 那么我们把数据表拖到VS上来,我们不只要会拖,还要会看。

<wbr></wbr>

[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_uid", AutoSync=AutoSync.OnInsert,DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
<wbr><wbr>public int uid<br><wbr><wbr>{<br><wbr><wbr><wbr>get<br><wbr><wbr><wbr>{<br><wbr><wbr><wbr><wbr>return this._uid;<br><wbr><wbr><wbr>}<br><wbr><wbr><wbr>set<br><wbr><wbr><wbr>{<br><wbr><wbr><wbr><wbr>if ((this._uid != value))<br><wbr><wbr><wbr><wbr>{<br><wbr><wbr><wbr><wbr><wbr>this.OnuidChanging(value);<br><wbr><wbr><wbr><wbr><wbr>this.SendPropertyChanging();<br><wbr><wbr><wbr><wbr><wbr>this._uid = value;<br><wbr><wbr><wbr><wbr><wbr>this.SendPropertyChanged("uid");<br><wbr><wbr><wbr><wbr><wbr>this.OnuidChanged();<br><wbr><wbr><wbr><wbr>}<br><wbr><wbr><wbr>}<br><wbr><wbr>}</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr></wbr>

AutoSync=AutoSync.OnInsert 表示在插入式自动同步,

IsDbGenerated表示是数据库自动生成的值。

这样才能那么神奇!懂了吧。

我们当然也可以通过可视化视图来设置这些属性。

如果是纯sql获得这个id就复杂一点,请参看本博客另一篇:

《Sql Server中如何取得刚刚插入的自增长的id值》

http://blog.sina.com.cn/s/blog_67aaf4440100w7ns.html

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics