I'm developing an ASP.net application using Entity Framework. I'm using DetailsView
to insert data into database. There is a table as Client
and its primary key is client_id
. client_id
is auto generated by database. I need to get auto generated client_id
after inserting a record into Client
table and assign it to a hidden field for future use.
I searched about this and I found lot of solutions. But I don't know how to use them since I'm new to asp.net. I found that Entity Framework automatically populates business objects with the db-generated values after call SaveChanges()
. My question is where should I call this in my partial class ? What is the event ?
I'm using DetailsView with EntityDataSource and binding EntityDataSource directly with Entity Model, so I'm not creating objects to insert data.
Following the call to _dbContext.SaveChanges()
, the entity will automatically be updated with its new identity field value.
The following code assumes your Entity Framework entity container name is MyEntities, and your database's Client table has at least the two following fields:
client_id int identity client_name varchar(25)
Your code might look something like this:
// 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;
After you have inserted the entity it should be updated so that the property that maps to the primary key in the database has the new PK value.
Like MyObject.Id
will give you the new Id
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With