C# linq insert:获取行号

C# linq insert:获取行号,c#,linq,linq-to-sql,C#,Linq,Linq To Sql,我有一个主键作为标识列的表。我正在使用LINQtoSQL进行插入,我想知道是否有方法返回插入的行的ID,以及如何确定插入发生了 感谢您的建议。调用SubmitChanges后,将使用数据库中的ID更新用于插入的实体的主键属性 例: 使用LINQ to SQL,它将在保存过程中自动更新任何标识(etc)属性,因此只需查看.Id(或其他内容) 重新认识它的发生:更新等发生在交易中;该事务必须已提交才能毫无例外地从方法中退出。如果您有一个外部TransactionScope(或类似文件),则由您决定是

我有一个主键作为标识列的表。我正在使用LINQtoSQL进行插入,我想知道是否有方法返回插入的行的ID,以及如何确定插入发生了


感谢您的建议。

调用SubmitChanges后,将使用数据库中的ID更新用于插入的实体的主键属性

例:


使用LINQ to SQL,它将在保存过程中自动更新任何标识(etc)属性,因此只需查看
.Id
(或其他内容)


重新认识它的发生:更新等发生在交易中;该事务必须已提交才能毫无例外地从方法中退出。如果您有一个外部
TransactionScope
(或类似文件),则由您决定是否提交;简言之,在你提交之前,你有一个幻影记录。因此,在提交所有事务之前,避免将新id传递到任何地方。

插入记录的标识应自动填充为插入而添加到
数据上下文中的对象。只需检查该对象的ID即可

此外,如果需要有关受影响记录数等的更多手动信息,可以查看
DataContext
上的
GetChangeSet()
方法

using (var dc = new MyDataContext())
{
    MyEntity entity = new MyEntity();

    dc.MyEntities.InsertOnSubmit(entity);
    dc.SubmitChanges();

    int pkValue = entity.PKColumn
}