Я использую код сначала с MVC5, и я разработал некоторые из моих моделей, чтобы содержать ссылку на ApplicationUser. Идея состоит в том, чтобы сохранить созданного пользователем пользователя на важных бизнес-объектах.Невозможно вставить идентификатор ApplicationUser в мой контекст
например. модель:
public class Guest
{
..... other properties
public ApplicationUser CreatedByUser { get; set; }
}
Контроллер:
public ActionResult Create(GuestVM model)
{
if (!ModelState.IsValid)
{
.....
return View(model);
}
// Initialize a new instance of the data model and set its properties
Guest guest = new Guest()
{
......
CreatedByUser = HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>().FindById(User.Identity.GetUserId())
};
db.Guests.Add(guest);
db.SaveChanges();
return RedirectToAction("Index");
}
Он поднимает мой пользователь правильно, если я поставил точку останова перед тем db.Guests.Add (гостя); Я вижу правильную информацию там.
Вот OnModelCreating
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<IdentityRole>().HasKey<string>(r => r.Id).Property(p => p.Name).IsRequired();
modelBuilder.Entity<IdentityUserRole>().HasKey(r => new { r.RoleId, r.UserId });
modelBuilder.Entity<IdentityUserLogin>().HasKey(u => new { u.UserId, u.LoginProvider, u.ProviderKey });
}
Однако затем завершается с ошибкой при слежении
г. Член с идентичностью «Project.DAL.Guest_CreatedByUser» не существует в коллекции метаданных.
Я поместил все мои пользовательские модели в другом контексте. Возможно, это проблема ...
Помощь! :)
Вы можете разместить свою конфигурацию OnModelCreating для Guest – singsuyash
Конечно! Я редактировал OP. Спасибо за помощь –