一尘不染

如何在不提交和重新查询的情况下获取记录ID?

sql

我有一个设置为自动递增的ID(显然是int)。

var dc = new DataContext([STRING]);

var usersTable = dc.GetTable<Audit_User>();

var user = usersTable.FirstOrDefault(o => o.Username.Equals("NAME"));

if (user == null)
{
   user = new Audit_User()
   {
      Username = "NAME"
   };

   usersTable.InsertOnSubmit(user);
}

//HERE - I need access to the user Id

dc.SubmitChanges();

有关更多信息,请参见标签。


阅读 113

收藏
2021-05-16

共1个答案

一尘不染

//这里-我需要访问用户ID

其实你 没有 。如果您始终使用linq-2-sql,则可以分配用户 实体, 而不必设置user.id来填充关系(最可能的原因,您需要ID)。

所以不要做

somerelated_table.fk_user_id = user.id

你做

somerelated_table.user = user

当您调用SubmitChanges时,Linq-2-sql将处理user.id的正确分配。另外,所有奖金都将在一次交易中完成。那就是linq-2-sql的美。

如果您需要在 使用linq-2-sql的 情况下 进行操作,则可以在提交更改后以任何方式使用它,无论如何都没有关系

2021-05-16