如何使用linq在数据库中插入行时检索身份ID

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用linq在数据库中插入行时检索身份ID相关的知识,希望对你有一定的参考价值。

如何使用linq在数据库中插入行时检索身份ID?

答案

如果您将“ID”行的属性设置为“自动生成的值”= true并将“自动同步”设置为“OnInsert”

alt text

.....只需在使用.SubmitChanges()保存更改后阅读。没有特别的技巧或任何需要的东西....

所以在NerdDinner样本的情况下:

using(NerdDinnerContext ctx = new NerdDinnerContext())
{
    Dinner upcoming = new Dinner();

    // set all properties for the dinner 
    upcoming.EventDate = DateTime.Today.AddDays(30);

    ctx.Dinners.InsertOnSubmit(upcoming);
    ctx.SubmitChanges();

    int newDinnerID = upcoming.DinnerID;
}

现在“newDinnerID”应该包含新添加的IDENTITY。

另一答案

LINQ to SQL应自动检索插入对象的标识,并相应地更新映射到主键的字段 - 只要映射的PK属性标记为[Column(IsDbGenerated=true)]

以上是关于如何使用linq在数据库中插入行时检索身份ID的主要内容,如果未能解决你的问题,请参考以下文章

我可以在 LINQ 插入后返回“id”字段吗?

插入 nhibernate sql server 后无法检索生成的 id

使用 linq 从 IdentityUser 列表中检索自定义配置文件数据

如何使用实体框架检索插入实体的 ID? [关闭]

使用 LINQ 批量插入

使用 LINQ to Twitter 进行身份验证后获取用户信息