【发布时间】:2016-04-18 11:06:02
【问题描述】:
这是我的源代码:
private ApplicationDbContext db = new ApplicationDbContext();
......
var UserManager = HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>();
Order newOrder = new Order
{
ApplicationUserId = User.Identity.GetUserId(),
ApplicationUser = UserManager.FindById(User.Identity.GetUserId()),
MakeDate = DateTime.Now
};
db.Orders.Add(newOrder);
db.SaveChanges();
我打算将用户信息添加到数据库中,但是,似乎 HttpContext.GetOwinContext().GetUserManager() 也共享相同的 DBContext,这就是为什么我有以下异常:
{"一个实体对象不能被多个IEntityChangeTracker实例引用。"}
一旦我删除了与UserManger相关的代码,就不会抛出异常。
那么如何从数据库中检索用户信息,然后将其保存到 order 表中?还是因为我已经将 userid 保存到 order 表中而导致设计错误?
【问题讨论】:
标签: c# asp.net asp.net-mvc entity-framework