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

时间:2009-08-20 20:44:00

标签: linq-to-sql

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

2 个答案:

答案 0 :(得分:4)

如果您已将“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。

马克

答案 1 :(得分:1)

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