Get Record ID in Entity Framework after insert

假如想象 提交于 2019-12-03 04:43:52

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

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"
RADU

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
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!