如何使用linq在数据库中插入行时检索身份ID?
答案 0 :(得分:4)
如果您已将“ID”行的属性设置为“自动生成的值”= true并将“自动同步”设置为“OnInsert”
.....只需在使用.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)]
。