使用LINQ to SQL获取ID

8

如何在将记录保存到数据库后获取记录ID。我的意思实际上是这样的。

我有一个Document类(实体来自数据库),我创建了一个实例,例如:

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

我想要的是检索其在数据库中的id值(docId),它是主键且为自动编号。需要注意的是,系统上会有很多用户并提交大量类似记录。
谢谢大家提前的帮助 :)

我认为你应该取消将其标记为社区维基。 - Nathan W
好的,但是我其实不知道社区维基是什么意思? - Tarik
3个回答

12

一旦你运行了.SubmitChanges,那么doc.docId应该被填充为在数据库中创建的ID。


5

就像其他人所说的,您应该能够做到这样:

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

然后使用以下代码获取ID:

int ID = doc.docId;

2
Linq to SQL默认使用更改跟踪。因此,一旦插入了行,您的对象会被更新并添加到数据上下文中。您将在文档集合中拥有一个新的有效行。
Charlie Calvert的这篇博客文章提供了一些很好的Linq示例可供下载。我只是为了参考而保存它。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接