Как я могу получить идентификатор вставленной записи, используя Entity Framework - PullRequest
0 голосов
/ 04 июля 2018

У меня проблема с Entity Framework в Asp.net. Я хочу получить значение Id всякий раз, когда я добавляю запись в таблицу базы данных SQL. Как я могу это сделать? Вот мой код:

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);

}

Ответы [ 4 ]

0 голосов
/ 05 июля 2018

Полное решение

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);
}

Надеюсь, вы понимаете, и это будет полезно для вас.

0 голосов
/ 04 июля 2018

Значение Id будет автоматически заполняться после вставки записи. Вы просто берете значение как из objectname.Id.

0 голосов
/ 04 июля 2018

Согласно приведенным выше ответам значение идентификатора будет автоматически заполняться после вставки записи.

Вот пример.

ваш класс DataModel напр.

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

и когда вы собираетесь вставить свои данные, используя Entity Framework, используйте это

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

тогда этот result вернет данные с идентификатором. здесь _dbContext - это ваша EntityFrameWork SPContext, если вы ее создали.

Попробуйте это.

0 голосов
/ 04 июля 2018

Как только вы вызовете методы сохранения изменений в Entity Framework, ID будет автоматически заполнен (при условии, что у вас есть ID в качестве столбца идентификатора в вашей таблице)

...