我有一个复杂的用户类型(更多信息),它可能包含基于不同类型的不同信息。现在,当我想注册用户时,我想在其他数据库表中添加必要的信息。目前我正在尝试这样做:
楷模:
public class NormalUser
{
[Key]
public string Id { get; set; }
//....
[Required]
public virtual User User { get; set; }
}
控制器
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();
//....
但是,当我运行它时,我在最后一行得到 2 个错误。一个错误是说该Id
字段normaluser
应该是唯一的,另一个是说该User
字段应该是唯一的。它们都是必需的标准,但我认为第一个是由Id
字段的自动增量处理的,我没想到第二个,因为我刚刚创建了User
.
使用这种方法我什至做正确的事吗?
更新:
Id
通过将字段的类型从string
更改为修复第一个int