【问题标题】:Get Last Inserted record Id Entity Framework [duplicate]获取最后插入的记录 ID 实体框架 [重复]
【发布时间】:2017-07-12 10:41:18
【问题描述】:

我正在使用如下存储过程在数据库中插入记录

db.Database.ExecuteSqlCommand("sp_insertNewRecord");

现在我想获取最后插入记录的 ID。

由于某种原因我不能使用下面的功能

db.TableName.Add(record);
db.SaveChanges();

所以请不要建议我使用这个。

【问题讨论】:

  • 更改存储过程以输出您需要的 ID,方法是返回它或在输出参数上设置它。
  • 让你的SP返回SCOPE_IDENTITY()
  • 由于某些(what?) 原因我不能使用下面的函数
  • 我认为 SP 不仅仅插入到单个表中。 @LeiYang 或者 SQL 管理员想要来自 SP 等的所有插入。这并不少见

标签: c# asp.net-mvc entity-framework asp.net-mvc-5


【解决方案1】:

在你的存储过程中创建一个输出变量,比如

 create procedure [dbo].[Procedurename] @returnVal int output
 as 
 SET @returnVal = SCOPE_IDENTITY();

插入记录后,获取 SCOPE_IDENTITY() 并将其设置为 OUTPUT 变量。

并在调用存储过程时获取实体框架中的id。

希望对您有所帮助!

【讨论】:

    猜你喜欢
    • 2013-06-02
    • 2015-04-19
    • 1970-01-01
    • 1970-01-01
    • 2018-12-12
    • 1970-01-01
    • 1970-01-01
    • 2018-11-06
    • 1970-01-01
    相关资源
    最近更新 更多