如何在使用LINQ插入后检索标识列值

时间:2009-03-19 21:17:31

标签: .net linq linq-to-sql

你们有没有人能告诉我如何完成以下任务?

// Prepare object to be saved
// Note that MasterTable has MasterTableId as a Primary Key and it is an indentity column

MasterTable masterTable = new MasterTable();
masterTable.Column1 = "Column 1 Value";
masterTable.Column2 = 111;

// Instantiate DataContext
DataContext myDataContext = new DataContext("<<ConnectionStrin>>");

// Save the record
myDataContext.MasterTables.InsertOnSubmit(masterTable);
myDataContext.SubmitChanges();

// ?QUESTION?
// Now I need to retrieve the value of MasterTableId for the record just inserted above.

亲切的问候

2 个答案:

答案 0 :(得分:5)

在您调用SubmitChanges之后,将为插入的对象分配标识值。

只需访问:

masterTable.MasterTableId

答案 1 :(得分:0)

我知道LINQ to SQL会自动包装数据库事务中的所有更改。因此,如果我想将返回的ID用于另一个插入(我的用户表有一个AddressID,那么我添加一个新的地址记录然后添加一个带有该ID的新用户记录)并且插入用户时出现问题,地址插入不会回滚。你应该将SubmitChanges包装在另一个交易中吗?