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
Thanks, I spent 3 days searching and searching with complicated results but this solution is brilliant! Here it is in vb.net:
Protected Sub dvArticulos_ItemInserted(sender As Object, e As EntityDataSourceChangedEventArgs) Handles EntityDataSource1.Inserted
Dim last_Serie As Long = DirectCast(e.Entity, articulos).Serie
Session("Articulo") = last_Serie
End Sub
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;
This is what i'm looking for.
in partial class
protected void clientDataSource_OnInserted(object sender, EntityDataSourceChangedEventArgs e )
{
int newPrimaryKey = ((Client)e.Entity).ClientId;
Debug.WriteLine(" Client ID is " + newPrimaryKey);
}
and added below line in EntityDataSource
in aspx page.
OnInserted="clientDataSource_OnInserted"
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