[英]How can I get Id of inserted entity in Entity framework when using defaultValue?
[英]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.