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

本文详细介绍了在数据库操作中使用Linq to SQL进行插入操作,并解释了如何通过AutoSync和IsDbGenerated属性实现自动ID生成的过程。通过实例演示了如何获取插入后自动生成的ID值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值