我需要将消息中从客户端收到的字符串附加到数据库中的现有数据中。我直接工作,使用方法:
public Order getLastOrder(int UserID)
{
Order lastOrder = null;
using (ApplicationContext db = new ApplicationContext())
{
foreach (var item in db.Orders)
{
if ((item.Customer == UserID) && (item.States == OrderStates.OnChanging))
{
lastOrder = item;
break;
}
}
}
if (lastOrder != null) return lastOrder;
else
{
throw new Exception("No avialable orders with InChanging state for user: " + UserID);
}
}
和
public void SaveOrder(Order order)
{
using (ApplicationContext db = new ApplicationContext())
{
db.Orders.Attach(order);
db.SaveChanges();
}
}
我像这样将数据添加到当前行:
_orderDataCollector = _ordersRepository.getLastOrder(message.UserId);
_orderDataCollector.Description = string.Format("{0}{1}", _orderDataCollector.Description, ("\n " + message.Text));
_ordersRepository.SaveOrder(_orderDataCollector);
问题是在向描述中添加数据时,它们没有被保存。我猜问题出在 SaveOrder(Order order);
如何解决?
显然,EF Core 不了解实体已更改。试试这样: