使用 LINQ to SQL 获取 ID
Posted
技术标签:
【中文标题】使用 LINQ to SQL 获取 ID【英文标题】:Get Id using LINQ to SQL 【发布时间】:2010-09-27 02:23:18 【问题描述】:如何在将记录保存到数据库后获取记录 ID。我的意思是实际上是这样的。
我有 Document 类(它是来自 DataBase 的实体),我创建了一个类似
的实例Document doc = new Document() title="Math",name="Important";
dataContext.Documents.InsertOnSubmit(doc);
dataContext.SubmitChanges();
我想要的是检索它位于数据库中的 id 值(docId),它的主键也是自动编号。一件事,系统上会有很多用户,并且会提交大量这样的记录。
提前谢谢大家:)
【问题讨论】:
我认为您应该将其取消标记为社区 wiki。 好的,但我不知道 Community Wiki 到底是什么意思? 【参考方案1】:运行 .SubmitChanges 后,应该使用在数据库上创建的 Id 填充 doc.docId。
【讨论】:
【参考方案2】:就像每个人都说你应该能够做这样的事情:
Document doc = new Document() title="Math",name="Important";
dataContext.Documents.InsertOnSubmit(doc);
dataContext.SubmitChanges();
然后通过以下方式获取 ID:
int ID = doc.docId;
【讨论】:
【参考方案3】:默认情况下,Linq to SQL 会进行更改跟踪。因此,一旦插入行,您的对象就会更新并添加到数据上下文中。您的文档集合中将有一个新的有效行。
This Charlie Calvert 的博客文章有一些不错的 Linq 示例可供下载。我保留它仅供参考。
【讨论】:
以上是关于使用 LINQ to SQL 获取 ID的主要内容,如果未能解决你的问题,请参考以下文章
如何在linq to sql中使用orderby和partition by获取第一行
Linq To EF (添加记录后获取添加的自增ID和叫“ID”的列不是自增列不让插入的问题)