在LINQ2SQL插入之后获取主键
本文关键字:获取 之后 LINQ2SQL 插入 | 更新日期: 2023-09-27 18:01:30
如何检索LINQ2SQL新创建记录的主键?
var peon = new Peon { name = 'Serf' };
context.Peons.InsertOnSubmit(peon);
context.SubmitChanges();
LINQ2SQL模型会自动使用主键更新吗?我在文档中找不到任何相关信息。
或者是否有其他方法来获取最后插入记录的主键?最好不要搜索记录。
我的问题的上下文是我的类通过多对多表与另一个类关联。我需要主键来插入到该表的关联。例如:
// After previous code.
var bossPeonMapping = new { PeonId = peon.Id, BossId = boss.Id };
// Insert mapping
提交更改后,实体应该有它的主键值
在Linq2SQL设计器中,查看主键字段的属性。确保它的AutoGeneratedValue = True, Auto-Sync = OnInsert。如果是,则应该使用数据库服务器在插入期间分配的值填充它。
try
{
var peon = new Peon { name = 'Serf' };
context.Peons.InsertOnSubmit(peon);
context.SubmitChanges();
return peon.Id;
}
catch(Exception e) { }
是的,密钥将在第一次提交更改后可用,但您不需要它。您可以在新的映射中使用该实体。所以new {Peon = Peon,…}而不是peon.id
你可以同时提交它们,这样你就可以免费管理事务了