簡體   English   中英

如何使用實體框架獲取插入記錄的 id

[英]How can i get id of inserted record Using Entity Framework

我在 Asp.net 中遇到實體框架問題。 每當我向 SQL 數據庫表添加記錄時,我都想獲取 Id 值。 我怎樣才能做到這一點? 這是我的代碼:

StoredProcedure 



USE [Sapphiresworld]
GO
/****** Object:  StoredProcedure [dbo].[addProduct]    Script Date: 7/4/2018 10:25:41 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER Proc [dbo].[addProduct]
@title nvarchar(250),
@price nvarchar(50),
@unitID int,
@date nvarchar(50),
@subCategoryID  int,
@brandID int,
@vat int,
@discount int,
@picture nvarchar(50),
@stock int
as
declare @MyVal int=0
INSERT into [PRODUCT] values (@title,
@price ,
@unitID,
@date,
@subCategoryID  ,
@brandID ,
@vat ,
@discount ,
@picture ,
@stock)
Set @MyVal = @@IDENTITY
Select @MyVal as Val

這里是 ClsBrand

        public string AddBrand(string brandName)
   {
   var result = new SapphiresworldEntities().AddBrand(brandName).ToString();

        return result;       
   }

針對保存按鈕的代碼

  protected void Btnsave_Click(object sender, EventArgs e)
{
            clsBrand nb = new clsBrand();
      string nwBran = nb.AddBrand(relig.Text);

}

插入記錄后,Id 值將自動填充。 您只需從 objectname.Id 中獲取類似的值。

一旦您在實體框架中調用保存更改方法,ID 將自動填充(假設您有 ID 作為表中的標識列)

根據上述答案,id 值將在插入記錄后自動填充。

這是示例。

你的 DataModel 類前。

public class MyDataModel
{
    [Key]
    public int Id {get; set;}
    public string TestData {get; set;}
}

當您要使用實體框架插入數據時,請使用它

public bool SaveMethodInDataBase(MyDataModel myDataModel)
{
     MyDataModel result = _dbContext.MyDataModel.Add(myDataModel);
     _dbContext.SaveChanges();
}

那么這個result將返回帶有 Id 的數據。 在這里_dbContext是您創建的 EntityFrameWork SPContext

嘗試這個。

完整的解決方案

public class Student
{
    public int Id { get; set; }
    public string Name { get; set; }
}

public async Task<IActionResult> Create([Bind("Id,Name")] Student student)
{
    if (ModelState.IsValid)
    {
        _context.Add(student);
        await _context.SaveChangesAsync();

        //Here your Id Value after insert record
        int StudentId = student.Id;

        return RedirectToAction(nameof(Index));
    }
    return View(student);
}

希望您能理解,這將對您有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM