加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 插入后在实体框架中获取记录ID

发布时间:2020-12-16 00:35:17 所属栏目:asp.Net 来源:网络整理
导读:我正在使用实体框架开发一个asp.net应用程序。我正在使用DetailsView将数据插入数据库。客户端有一个表,其主键是client_id。 client_id是由数据库自动生成的。在Client表中插入一个记录后,我需要自动生成client_id,并将其分配给一个隐藏的字段以供将来使
我正在使用实体框架开发一个asp.net应用程序。我正在使用DetailsView将数据插入数据库。客户端有一个表,其主键是client_id。 client_id是由数据库自动生成的。在Client表中插入一个记录后,我需要自动生成client_id,并将其分配给一个隐藏的字段以供将来使用。

我搜索了这个,我发现很多解决方案。但我不会如何使用,因为我是新的asp.net。调用SaveChanges()后,我发现实体框架会自动使用数据库生成的值填充业务对象。我的问题是在我的部分班上我应该在哪里叫什么事件?

我正在使用EntityDataSource的DetailsView,并使用Entity Model直接绑定EntityDataSource。所以我没有创建对象来插入数据。

解决方法

在调用_dbContext.SaveChanges()之后,实体将自动更新其新的标识字段值。

以下代码假定您的实体框架实体容器名称是MyEntities,并且数据库的Client表至少包含以下两个字段:

client_id   int identity
client_name varchar(25)

您的代码可能如下所示:

// Establish DbContext
private readonly MyEntities _dbContext = new MyEntities();

// Create new client table entity and initialize its properties
var clientEntity = new Client { client_name="MyCo" };

// Add it to the ORM's collection of Client entities
_dbContext.Clients.Add(clientEntity);

// Save the new entity to the database
_dbContext.SaveChanges();

// Return the identity field from the existing entity,//   which was updated when the record was saved to the database
return clientEntity.client_id;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读