C# 如何在ASP.NETMVC中使用SaveChanges时获取自动生成的ID。我目前的方法似乎效率低下
我有一张学生桌C# 如何在ASP.NETMVC中使用SaveChanges时获取自动生成的ID。我目前的方法似乎效率低下,c#,asp.net,sql-server,asp.net-mvc,entity-framework,C#,Asp.net,Sql Server,Asp.net Mvc,Entity Framework,我有一张学生桌 ( (ID INT PRIMARY KEY IDENTITY(1,1), NAME NVARCHAR(50) NOT NULL, ..... ) 模型定义是 [Key] [DatabaseGenerated(DatabaseGeneratedOption.Identity)] public int ID { get; set; } [Column("NAME")] [Required(AllowEmptyStr
(
(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; }
........
每当我在Student表中使用
isDAL.StudentTable.Add(scTemp.StudentInfo);
isDAL.SaveChanges();
这里isDAL是从实体框架继承DBContext类的数据访问层
现在我正在使用一个触发器,它获取ID并将其存储在LASTINSERTED表中,该表定义为
CREATE TABLE LASTINSERTED
(
INT INSERTEDID
)
我使用以下代码来获得它
intGeneratedID = isDAL.LASTINSERTED.ToList<Inserted>()[0].InsertedID;
获取ID后,表中的数据将被删除。有更好的办法吗?创建一个额外的记录,再次查询表似乎效率低下 这里不需要使用触发器。只需按如下所示操作即可
isDAL.StudentTable.Add(scTemp.StudentInfo);
isDAL.SaveChanges();
var yourPkId=scTemp.StudentInfo.ID;//this is your Auto generated PK Id
多容易啊…:D您不需要在此处使用触发器。只需按如下所示操作即可
isDAL.StudentTable.Add(scTemp.StudentInfo);
isDAL.SaveChanges();
var yourPkId=scTemp.StudentInfo.ID;//this is your Auto generated PK Id
多容易啊…:D在调用
SaveChanges()
后,只需使用scTemp.StudentInfo.ID
获取值,在调用SaveChanges()
后,只需使用scTemp.StudentInfo.ID