entity-framework - 如何使用 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();
推荐阅读
- c# - 如何在具有多个项目的 .NET Core 中创建 docker 映像?
- amazon-web-services - 在 AWS SageMaker 中加载 S3 存储桶数据
- android - 服务器上未注册错误,Android 上未收到 FCM 消息
- python - 从 json 构造 lxml.etree 禁用 excaping
- python - 如何在列表列表中获取可能对的列表 - python
- postgresql - 在 Postgres 中插入带有 COPY 的二进制文件
- node.js - 如何在 timerTrigger Azure Functions 中设置环境变量或输入?
- google-sheets - Google 表格 - 基于连续多个单元格的条件格式
- sql - SQL 触发器还是别的什么?
- git - 如何解决“open_stackdumpfile:将堆栈跟踪转储到 date.exe.stackdump”错误?