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