2008-12-16 66 views
8

如何在将数据保存到数据库后获取记录ID。我的意思是这样的。使用LINQ to SQL获取ID

我有文档类(这是从数据库实体寿)和像

Document doc = new Document() {title="Math",name="Important"}; 
dataContext.Documents.InsertOnSubmit(doc); 
dataContext.SubmitChanges(); 

不是我想要的是检索它的值id(的docId),它位于数据库中,我创建一个实例,它的主要键也自动编号。有一件事,系统中会有很多用户,并提交大量这样的记录。

在此先感谢大家:)

+0

我想你应该取消将其作为社会的维基。 – 2008-12-16 06:22:08

+0

好吧,但我实际上并不知道社区Wiki的含义? – Tarik 2008-12-16 07:53:01

回答

12

一旦你已经运行.SubmitChanges然后doc.docId应与已在数据库上创建的ID来填充。

2

Linq to SQL确实会在默认情况下更改跟踪。所以一旦你的行被插入,你的对象就会被更新并添加到datacontext中。您的文档集合中将有一个新的有效行。

This Charlie Calvert的博客文章有一些很好的Linq样本供下载。我保留仅供参考。

5

像其他人说你应该能够做这样的事情:

Document doc = new Document() {title="Math",name="Important"}; 
dataContext.Documents.InsertOnSubmit(doc); 
dataContext.SubmitChanges(); 

然后获得与编号:

int ID = doc.docId;