[英]Entity Framework 4 getting primary key ID for inserted record
我正在使用实体框架在我的sql数据库中插入一行。 如果要使用存储过程,则可以返回插入记录的主键。
我是否可以使用实体框架返回最后插入的最后一条记录的PK?
插入实体后,应该已对其进行了更新,以便映射到数据库中主键的属性具有新的PK值。
是的,您当然可以这样做。 参见示例:
int id = 0;
using (PC2Entities objectContext = new PC2Entities())
{
objectContext.ClientContacts.AddObject(clientContact);
objectContext.SaveChanges();
id = clientContact.Id;
transaction.Complete();
}
id
是PK。
对于Oracle.ManagedDataAccess.EntityFramework(版本6.121或更早版本)
如果插入后仍未获得ID,则在主键属性上添加此属性。
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public string ID { get; set; }
我不得不这样做,不知道为什么,可能是因为我使用的是oracle,而实体框架对此并不满意。
编辑:我看到这个答案被否决了,我知道为什么,因为ODAP的最新版本不需要您放入[DatabaseGenerated(DatabaseGeneratedOption.Identity)]。 但这对于较旧的版本是正确的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.