C# 向表中添加用户,并在用户注册时向第二个表中添加数据时使用用户id

C# 向表中添加用户,并在用户注册时向第二个表中添加数据时使用用户id,c#,sql,entity-framework,C#,Sql,Entity Framework,在我的控制器中,用户注册的最后一部分是: _context.Users.Add(user); _context.SaveChanges(); 现在,我想获取该条目的ID,并在向第二个表添加其他数据时使用它,我如何才能做到这一点?保存更改后,entity从数据库获取其ID。 您还可以使用导航属性并在一个事务中完成所有更改(保存更改)保存更改后,实体将从数据库获取其id。 您还可以使用导航属性并在一个事务中完成所有更改(保存更改)如果用户主键是自动生成的,则您可以执行以下操作: ...... _

在我的控制器中,用户注册的最后一部分是:

_context.Users.Add(user);
_context.SaveChanges();

现在,我想获取该条目的
ID
,并在向第二个表添加其他数据时使用它,我如何才能做到这一点?

保存更改后,entity从数据库获取其ID。
您还可以使用导航属性并在一个事务中完成所有更改(保存更改)

保存更改后,实体将从数据库获取其id。
您还可以使用导航属性并在一个事务中完成所有更改(保存更改)

如果
用户
主键是
自动生成的
,则您可以执行以下操作:

......

_context.Users.Add(user);

SecondTable secondTable = new SecondTable();
secondTable.UserId = user.Id; // <-- Just point the user Id here
_context.SecondTables.Add(secondTable);

_context.SaveChanges();
。。。。。。
_context.Users.Add(用户);
SecondTable SecondTable=新的SecondTable();

secondTable.UserId=user.Id;// 如果
用户
主键为
自动生成
,则可以执行以下操作:

......

_context.Users.Add(user);

SecondTable secondTable = new SecondTable();
secondTable.UserId = user.Id; // <-- Just point the user Id here
_context.SecondTables.Add(secondTable);

_context.SaveChanges();
。。。。。。
_context.Users.Add(用户);
SecondTable SecondTable=新的SecondTable();

secondTable.UserId=user.Id;// 如果您有自动递增的ID coulmn,那么很容易获得该ID(在调用
SaveChanges()
之后):

或者,如果手动分配ID,则更简单:

var id = user.Id;

如果您有自动递增的ID coulmn,那么很容易获得该ID(在调用
SaveChanges()
之后):

或者,如果手动分配ID,则更简单:

var id = user.Id;

我无法设置它,因为该Id是在向表中添加实体时由SQL server生成的。我怎么能得到它?你只需要指出我做了什么!EF将在
SaveChanges()
成功的过程中完成剩余的工作。我尝试过这种方法,当我注册用户时,它收到Id 1(第一个条目),但第二个表中的条目有UserId“-2147482647”,这怎么会发生?我无法设置它,因为该Id是在向表中添加实体时由SQL server生成的。我怎么能得到它?你只需要指出我做了什么!在
SaveChanges()
成功的过程中,EF将完成其余的工作。我尝试过这种方法,当我注册用户时,它收到了Id 1(第一个条目),但第二个表中的条目有UserId“-2147482647”,这怎么会发生?如果您有自动递增的Id coulmn,您就不需要往返数据库。只需要像我在插入过程中所做的那样指向它。EF将在
SaveChanges()
成功期间执行其余操作。如果您具有自动递增的ID coulmn,则不需要此数据库往返。只需要像我在插入过程中所做的那样指向它。在
SaveChanges()
成功运行期间,EF将执行其余操作。