C# 如何使用实体框架获取插入记录的id
我对Asp.net中的实体框架有问题。每当我向SQL数据库表中添加记录时,我都希望获得Id值。我该怎么做? 这是我的密码:C# 如何使用实体框架获取插入记录的id,c#,asp.net,sql-server,entity-framework,entity,C#,Asp.net,Sql Server,Entity Framework,Entity,我对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 G
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
这是克莱斯布兰德
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);
}
在实体框架中调用save changes方法后,ID将自动填充(假设您的表中有ID作为标识列)在实体框架中调用save changes方法后,插入记录后,ID将自动填充(假设您的表中有ID作为标识列),Id值将自动填充。您只需从objectname.Id中获取类似的值。插入记录后,Id值将自动填充。您只需从objectname.Id.中获取类似的值。根据上述答案,在插入记录后,Id值将自动填充 这是一个例子 你的数据模型类
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();
}
然后,这个结果将返回Id为的数据。在这里\u dbContext
是您创建的EntityFrameWorkSPContext
尝试此操作。根据上述答案,在插入记录后,id值将自动填充
这是一个例子
你的数据模型类
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();
}
然后,这个结果将返回Id为的数据。在这里\u dbContext
是您创建的EntityFrameWorkSPContext
试试这个。完成解决方案
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);
}
公共班级学生
{
公共int Id{get;set;}
公共字符串名称{get;set;}
}
公共异步任务创建([Bind(“Id,Name”)]Student)
{
if(ModelState.IsValid)
{
_上下文。添加(学生);
wait_context.SaveChangesAsync();
//这里是插入记录后的Id值
int StudentId=student.Id;
返回重定向到操作(名称(索引));
}
返回视图(学生);
}
希望您理解,并对您有所帮助。完整解决方案
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);
}
公共班级学生
{
公共int Id{get;set;}
公共字符串名称{get;set;}
}
公共异步任务创建([Bind(“Id,Name”)]Student)
{
if(ModelState.IsValid)
{
_上下文。添加(学生);
wait_context.SaveChangesAsync();
//这里是插入记录后的Id值
int StudentId=student.Id;
返回重定向到操作(名称(索引));
}
返回视图(学生);
}
希望您理解,这将对您有所帮助。我在您的示例中没有看到实体Framworkz代码是!没有EF代码。请描述更多。@TheGeneral我应该添加什么?我在您的示例中没有看到实体Framworkz代码是的!没有EF代码。请描述更多。@TheGeneral我应该添加什么?我需要更多信息。我应该在代码中添加什么位置和内容。我想返回新插入的列的ID,并将其保存在nwBran
中。您不需要在插入存储过程中选择@IDENTITY。只需将表的唯一列设为标识列(或在表中添加ID列并使其标识),然后在表中插入一行即可。例如:var cust=new Customer();context.Customers.Add(cust);context.SaveChanges();//生成客户字符串的Id nwBran=cust.Id;//现在您可以获得插入对象的Id(标识),我需要更多信息。我应该在代码中添加什么位置和内容。我想返回新插入的列的ID,并将其保存在nwBran
中。您不需要在插入存储过程中选择@IDENTITY。只需将表的唯一列设为标识列(或在表中添加ID列并使其标识),然后在表中插入一行即可。例如:var cust=new Customer();context.Customers.Add(cust);context.SaveChanges();//生成客户字符串的Id nwBran=cust.Id;//现在您可以获得插入对象的Id(标识),我需要更多信息。我应该在代码中添加什么位置和内容。我想返回新插入列的ID并将其保存在nwBran
中,请检查我在您的问题中的另一个答案。有一个实体框架的例子。我需要更多的信息。我应该在代码中添加什么位置和内容。我想返回新插入列的ID并将其保存在nwBran
中,请检查我在您的问题中的另一个答案。有一个实体框架的例子。