我正在尝试(但失败了)将MVC的实现到我的网站中。 我觉得我的情况相当简单。 我有一个User类(Entity Framework - Database first),其中包含所有用户的信息。 并非来自的每个用户都可以访问网站。 因此,在我的ApplicationUser中,有一个链接指向这个类。 在代码中,它看起来像这样:
public partial class User
{
public int Id { get; set; }
public string Firstname { get; set; }
public string Lastname { get; set; }
public string Email { get; set; }
}
public class ApplicationUser : IdentityUser
{
public virtual Entities.User UserInfo { get; set; }
public ApplicationUser()
{
UserInfo = new Entities.User();
}
}
当在控制器中调用CreateUserAsync
方法时,一切都出了问题。以下是我的控制器代码。
public class AccountController : BaseController
{
public UserManager<ApplicationUser> UserManager { get; private set; }
public async Task<ActionResult> Register(RegisterViewModel model)
{
if (ModelState.IsValid)
{
var dbUser = new User
{
Firstname = model.FirstName,
Lastname = model.LastName,
Email = model.UserName
};
db.Users.Add(dbUser);
db.SaveChanges();
var appUser = new ApplicationUser(model.UserName);
appUser.UserInfo = dbUser;
try
{
var result = await UserManager.CreateAsync(appUser, model.Password);
}
catch (Exception e)
{
db.Users.Remove(dbUser);
db.SaveChanges();
}
}
}
}
CreateUserAsync
方法出现以下错误:当前上下文的模型中不包括实体类型 ApplicationUser。
现在我的问题是:
- 我是否按照“mvc”的方式进行操作?我认为这是微不足道的事情,但需要付出大量的努力。
- 如果不是,请问有更好的方法可以实现这一点吗?