c# - 实体A包含实体B,我如何在不插入B的情况下更新A(因为它已经存在)EF核心
问题描述
所以我使用的是 EF Core 5.0.1,我有这个实体 A,它包含对另一个实体 B 的引用。
我想从 A 更新一个条目,因此它开始引用现有的 B,但是每当我尝试时,EF 核心都会尝试创建 B 的这个条目,就好像它是一个新条目一样,从而导致错误(重复的 Id)。是否可以让 EF 将此引用添加到现有 B?
实体 A:
public class Customer
{
public string JdeNumber { get; set; }
public string ResponsibleUnit { get; set; }
public string Email { get; set; }
public User RegionalManager { get; set; }
}
实体 B:
public class User
{
public string Code { get; set; }
public string Name { get; set; }
public string Email { get; set; }
public Group UserGroup { get; set; }
}
解决方案
Update
如果不查看您的实施,就无法提出确切的答案。但我认为您可以使用 DBContext 执行此类操作而无需更新RegionalManager
.
var customer = context.Customers.First(a => a.JdeNumber == "number_of_existing_customer");
customer.ResponsibleUnit = "Test Unit";
customer.Email = "email@example.com";
context.SaveChanges();
更多更新实体的方法可以在这里找到。
推荐阅读
- javascript - 在 HTML 页面中使用 NPM 依赖项
- xml - 使用 XSLT 将 XML 转换为 CSV - 展平并匹配到模板
- python - 我应该使用什么类型的文件来保存我的应用程序信息?
- javascript - 设置谷歌地图 LatLng 值 Javascrjpt
- python - AttributeError: 'DataFrame' 对象在运行 summary_data_from_transaction_data() 后没有属性 'ix'
- vue.js - 在 vue devtools 中单击该组件时出现组件数据
- r - 在 R 中使用 glm 函数时出现因子错误
- node.js - 解析服务器内存问题
- python - 在python中按逗号提取单词
- android - 项目从回收站视图点击到 viewpager