如何解决如何使用LINQ / LAMBDA更改表属性的值?
我有一个订单表和一个orderStatus表,它们之间的关系如下所示:
我希望能够在动作结果中使用lambda表达式将'StatusID'更改为特定订单的值2(我能够获取特定订单ID,并将其加载到整数变量中) -这样做有什么简单的方法吗?
到目前为止,我已经尝试过:
//get specific order ID
int currentOrderId = newConfirmedOrderLine.OrderID;
//-----
Order statusChange = new Order();
statusChange.OrderStatus.StatusID = 2;
DBAccessor.SaveChanges();
我是linq和lambda的新手,所以对带答案的任何解释将不胜感激!
解决方法
如果DBAccessor
是DbContext,则可以/应该这样做。您需要从Order
DbSet加载要更改的DBAccessor.Order
实体,通过设置属性对其进行更改,然后调用SaveChanges。
var orderStatus = DBAccessor.OrderStatus.First(x => x.StatusID == 2);
var order = DBAccessor.Order.Find(currentOrderId);
order.OrderStatus = orderStatus;
DBAccessor.SaveChanges();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。