gpt4 book ai didi

c# - 在 ASP.Net MVC 中使用 SaveChanges 时如何获取自动生成的 ID。我目前的方法似乎效率低下

转载 作者:太空宇宙 更新时间:2023-11-03 21:08:41 26 4
gpt4 key购买 nike

我有一个学生表

(
(ID INT PRIMARY KEY IDENTITY(1,1),
NAME NVARCHAR(50) NOT NULL,
.....
)

模型定义是

    [Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ID { get; set; }

[Column("NAME")]
[Required(AllowEmptyStrings=false, ErrorMessage="Name is required")]
public string Name { get; set; }
........

每当我使用以下命令在学生表中插入 A 记录时,我都需要在数据库中获取自动生成的 ID

isDAL.StudentTable.Add(scTemp.StudentInfo);
isDAL.SaveChanges();

这里的DAL是数据访问层,它继承了Entity Framework的DBContext类。

现在我正在使用一个触发器来获取 ID 并将其存储在定义为

的 LASTINSERTED 表中
CREATE TABLE LASTINSERTED
(
INT INSERTEDID
)

我用下面的代码来获取

intGeneratedID = isDAL.LASTINSERTED.ToList<Inserted>()[0].InsertedID;

Inserted 是一个虚拟模型,定义为:

  public class Inserted
{
[Required]
[Column("InsertedId")]
public int InsertedID { get; set; }
}

得到ID后,删除表中的数据。有没有更好的办法?创建一个额外的记录,再次查询表似乎效率低下。

最佳答案

你不需要在这里使用触发器。如下图所示即可。

isDAL.StudentTable.Add(scTemp.StudentInfo);
isDAL.SaveChanges();
var yourPkId=scTemp.StudentInfo.ID;//this is your Auto generated PK Id

这是多么容易...:D

关于c# - 在 ASP.Net MVC 中使用 SaveChanges 时如何获取自动生成的 ID。我目前的方法似乎效率低下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39314559/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com