在SaveChanges()之后EF6获取标识列值

时间:2017-12-10 12:26:56

标签: c# sql-server entity-framework

我知道这个问题之前被问了100次,因为我已经检查了大部分问题。但它们似乎都不适用于EF6。

简单地说,我想使用EF6将记录写入SQL Server数据库,然后在执行SaveChanges()后恢复Identity列的值。

这是我的简单程序:

        using (var ctx = new myEntities())
        {
            ctx.TinyUrl_Url.Add(new TinyUrl_Url()
            {
                UrlValue = tinyUrl
            });
            ctx.SaveChanges();
        }

TinyUrl_Url表有2列:UrlValue和UrlID的Identity PK。如何在使用EF6插入新行后获取UrlID的值?

谢谢。

1 个答案:

答案 0 :(得分:0)

int Id = ctx.UrlID;

我个人这样做 -

context.Customers.Add(customer);
context.SaveChanges();//this generates the Id for customer
order.CustomerId = customer.Id;//finally I can set the Id

保存后应该有效。