我有两个实体:
public class Order:Entity
{
public virtual User User { get; set; }
...
}
public class User:Entity
{
public virtual ICollection<Order> Orders { get; set; }
...
}
接下来,我创建订单:
var order = _orderService.CreateTransientOrder(orderNumbers, PcpSession.CurrentUser);
PcpSession.Order = order;
这是CreateTransientOrder
。它只是 create Order
,但不保存到数据库中:
public Order CreateTransientOrder(string orderNumbers, User currentUser)
{
...fill fields
order.User = currentUser;
return order;
}
现在一切都好。接下来,我将订单保存到数据库:
_orderService.CreateOrder(PcpSession.Order);
这是CreateOrder
:
public void CreateOrder(Order order)
{
order.OrderDate = DateTime.Now;
_repository.Save(order);
_repository.SaveChanges();
}
这是我Save
的存储库方法:
public void Save<T>(T entity) where T : class, IEntity
{
_context.Set<T>().Add(entity);
}
当SaveChanges
在数据库中调用创建具有新 ID 的新用户并且订单具有新的 User_Id 时。在该CreateOrder
方法的调试器中,Id 等于当前用户。哪里有问题?
谢谢。