管理员表中的参考(FK)用户

时间:2017-07-04 15:47:24

标签: c# entity-framework asp.net-core

我在数据库中有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
    });

我需要两个表,因为管理员拥有用户号

的字段

1 个答案:

答案 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。