我在数据库中有2个表:用户和管理员
注册管理员后,会添加User表中的条目,之后,我想在Administrator表中引用此用户。
我正在使用EF Core,评论是以下步骤:
// Register user
this.context
.Users
.Add(new Entities.User()
{
Name = "Jhon",
});
// Get the ID of the newly created user
int userId = this.context
.Users
.Select(_ => _.Id ????)
// Reference the user created in the Administrator table
this.context
.Administradors
.Add(new Entities.Administrator()
{
UserId = userId
});
我需要两个表,因为管理员拥有用户号
的字段答案 0 :(得分:3)
将新创建的用户存储在变量中。然后保存更改,EF将更新ID
var user = new Entities.User { Name = "John" };
context.Users.Add(user);
// Reference the user created in the Administrator table
context.Administradors.Add(new Entities.Administrator { User = user });
context.SaveChanges();
但是,更好的选择是使用导航属性而不是使用ID。
SaveChanges()
这需要一个SaveChanges()
。
EF非常聪明,可以进行修复。即,如果您使用ID,EF将在执行SaveChanges()
时更新导航属性。如果您使用导航属性,EF将在执行SET
时更新ID。