Asp.net 从另一个控制器创建模型

Asp.net 从另一个控制器创建模型,asp.net,asp.net-mvc,asp.net-mvc-scaffolding,asp.net-mvc-5,Asp.net,Asp.net Mvc,Asp.net Mvc Scaffolding,Asp.net Mvc 5,我有一个复杂的用户类型(),它可能包含基于不同类型的不同信息。现在,当我想注册用户时,我想在其他数据库表中添加必要的信息。目前我正在尝试这样做: 模型: 控制器 但是,当我运行此命令时,在最后一行中出现了两个错误。一个错误是说normaluser的Id字段应该是唯一的,另一个错误是说User字段应该是唯一的。它们都是必需的条件,但我认为第一个条件是通过Id字段的自动递增来处理的,而我没有想到第二个条件,因为我刚刚创建了User 我用这种方法做对了吗 更新: 通过将Id字段的类型从string更改

我有一个复杂的用户类型(),它可能包含基于不同类型的不同信息。现在,当我想注册用户时,我想在其他数据库表中添加必要的信息。目前我正在尝试这样做:

模型: 控制器 但是,当我运行此命令时,在最后一行中出现了两个错误。一个错误是说
normaluser
Id
字段应该是唯一的,另一个错误是说
User
字段应该是唯一的。它们都是必需的条件,但我认为第一个条件是通过
Id
字段的自动递增来处理的,而我没有想到第二个条件,因为我刚刚创建了
User

我用这种方法做对了吗

更新:
通过将
Id
字段的类型从
string
更改为
int
修复了第一个问题,找到了我的答案。首先,我必须将
Id
字段的类型从
string
更改为
int
,以启用自动递增

其次,我错误地使用了新创建的
User
对象。我必须从数据库中加载信息:

var newUser = db.Users.Where(u => u.UserName == user.UserName).FirstOrDefault();
var normaluser = new NormalUser(model) { User = newUser };
                if (await Users.Create(user) && await Secrets.Create(new UserSecret(model.UserName, model.Password)) &&
                    await Logins.Add(new UserLogin(user.Id, IdentityConfig.LocalLoginProvider, model.UserName)))
                {
                    var normaluser = new NormalUser(model) { User = user };
                    db.NormalUsers.Add(normaluser);
                    db.SaveChanges();
                    //....
var newUser = db.Users.Where(u => u.UserName == user.UserName).FirstOrDefault();
var normaluser = new NormalUser(model) { User = newUser };