1
は、私は私が使用して学生のテーブルにレコードを挿入するたびに、データベースに自動生成されたIDを取得する必要がありStudentTableASP.Net MVCでSaveChangesを使用するときに自動生成されたIDを取得する方法。私の現在の方法は非効率的な
(
(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; }
........
である持っているようです
isDAL.StudentTable.Add(scTemp.StudentInfo);
isDAL.SaveChanges();
ここで、isDALは、Entity FrameworkからDBContextクラスを継承するデータアクセスレイヤーです。
今私は、私はそれが
intGeneratedID = isDAL.LASTINSERTED.ToList<Inserted>()[0].InsertedID;
挿入され得るために、次のコードを使用し
CREATE TABLE LASTINSERTED
(
INT INSERTEDID
)
として定義されてLASTINSERTEDテーブル内のIDと格納を取得し、トリガーを使用しています
public class Inserted
{
[Required]
[Column("InsertedId")]
public int InsertedID { get; set; }
}
IDを取得すると、次のように定義されます。テーブル内のaが削除されます。より良い方法がありますか?余分なレコードを作成し、再度テーブルをクエリするのは効率が悪いようです。
あなただけの値が 'scTemp.StudentInfo.ID'を使用して取得し、'のSaveChanges() 'と呼ばれた後 –