【发布时间】:2013-08-23 17:24:14
【问题描述】:
我有一个复杂的用户类型 (more info),它可能包含基于不同类型的不同信息。现在,当我想注册用户时,我想在其他数据库表中添加必要的信息。目前我正在尝试这样做:
型号:
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 个错误。一个错误是说normaluser 的Id 字段应该是唯一的,另一个是说User 字段应该是唯一的。它们都是必需的条件,但我认为第一个是由 Id 字段的自动增量处理的,我没想到第二个,因为我刚刚创建了 User。
我用这种方法做对了吗?
更新:
通过将Id 字段的类型从string 更改为int 来修复第一个问题
【问题讨论】:
标签: asp.net asp.net-mvc asp.net-mvc-scaffolding asp.net-mvc-5