I am using the Entity Framework for inserting a row into my sql database. If I was to be using a stored procedure then I would be able to return the primary key for the reco
Yes of course you can do this. See example:
int id = 0;
using (PC2Entities objectContext = new PC2Entities())
{
objectContext.ClientContacts.AddObject(clientContact);
objectContext.SaveChanges();
id = clientContact.Id;
transaction.Complete();
}
id
is the PK.
After you have inserted the entity it should have been updated so that the property that maps to the primary key in the database has the new PK value.
For Oracle.ManagedDataAccess.EntityFramework (version 6.121 or older)
If you still do not get the ID after inserting, then add this attribute on the primary key property.
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public string ID { get; set; }
I had to do this, don't know why, may be because I am using oracle and entity framework is not happy about that.
Edit: I see this answer is down voted, and I know why, because the latest version of ODAP doesn't require you to put the [DatabaseGenerated(DatabaseGeneratedOption.Identity)]. But this was true for the older versions.