namespace BoatShop.Controllers
{
public class ManagerController : Controller
{
ApplicationDbContext dbContext;
public ManagerController()
{
dbContext = new ApplicationDbContext();
}
public ManagerController(ApplicationUserManager userManager)
{
UserManager = userManager;
}
private ApplicationUserManager _userManager;
public ApplicationUserManager UserManager
{
get
{
return _userManager ?? HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>();
}
private set
{
_userManager = value;
}
}
public ActionResult Index()
{return View();}
public ActionResult ViewBoats()
{
var allBoats = dbContext.Boats.Where(x => x.isArchived == false).ToList();
return View(allBoats);
}
public ActionResult MakeOrder(int boatId)
{
OrderViewModel model = new OrderViewModel
{
boatId = boatId,
boatName = dbContext.Boats.FirstOrDefault(x => x.Id == boatId).Name,
ManagerName = User.Identity.Name,
userList = dbContext.Users.ToList()
};
return View(model);
}
[HttpPost]
public ActionResult MakeOrder(OrderViewModel model)
{
model.Order.Boat = dbContext.Boats.FirstOrDefault(x=>x.Id==model.boatId);
ApplicationUser seller = UserManager.FindById(User.Identity.GetUserId());
ApplicationUser customer = UserManager.FindById(model.CustomerId);
model.Order.SalePerson = seller;
model.Order.Customer = customer;
model.Order.CreationDate = DateTime.Now;
var order = model.Order;
dbContext.Orders.Add(order);
dbContext.SaveChanges();
return RedirectToAction("Index");
}
}
}
von Trial-and-Error-i haben, dass Fehler herausgefunden, durchEin Entitätsobjekt kann nicht von mehreren Instanzen von IEntityChangeTracker referenziert werden. Wi
verursacht wirdmodel.Order.SalePerson = seller; model.Order.Customer = customer;
diese Richtung. Ich denke, dass ich diese aus dem usermanager irgendwie lösen muss, aber ich habe keine Ahnung wie. Wie kann ich dieses Problem lösen? Vielen Dank im Voraus.
möglich duplizieren: http://stackoverflow.com/questions/10191734/entity-object-cannot-be-referenced-by-multiple-instances-of-ientitychangetracker –