与数据库无关的方法来检索ADO.NET中生成的id

时间:2012-05-22 11:54:49

标签: ado.net

在执行INSERT语句后,ADO.NET中是否有办法检索自动生成的ID?我知道Sql Server的SELECT @@IDENTITY和MySQL的SELECT last_insert_id(),但我需要的是一种与数据库无关的方法来检索ID。

1 个答案:

答案 0 :(得分:1)

我认为不存在某种方式,因为获取最后插入ID的命令是特定于供应商的。您可以做的是合并查询以在主查询中获取最后插入的id(我理解的不是您想要的)然后编写C#函数来读取它而不管您的db(不依赖于特定的ADO.NET类型)但是在接口IDbDataReaderIDbCommand

上指定的方法

否则你将不得不依赖一些ORM解决方案,比如实体框架,它将为您解决所有这些问题,使您免于手动获取最后插入的ID的麻烦,尽管实现将特定于数据库。你可以在这里看到一个很好的讨论:

getting identity row value using ADO.NET Entity

您可以看到this link,它可以让您深入了解依赖数据适配器的记录(但我不喜欢它)。