c# - 在 EF Core 中为新创建的实体应用自引用 ID
问题描述
我继承了一个具有实体父/子层次结构的项目。尽管 ParentId 可以为空,但它的设计使得没有父级的实体将其 ParentId 设置为自己的 Id。有很多工作流程依赖于这个约定,所以必须继续遵循。
在一次数据库行程中创建新实体时,我可以做些什么来将 ParentId 设置为实体的 ID?现在我只是在没有 ParentId 的情况下保存它,获取新生成的 Id,将它也分配给 ParentId,然后再次保存。
public partial class Entity
{
public long Id { get; set; }
public long? ParentId { get; set; }
}
解决方案
如果您这样做,它应该由 EF 自动处理:
public partial class Entity
{
public long Id { get; set; }
public long? ParentId { get; set; }
public Entity Parent { get; set; }
}
var entity = new Entity();
entity.Parent = entity;
SaveChanges();
推荐阅读
- python - Python中的编译时常量
- excel - Excel VBA 多行文本框以 RTL 语言添加额外的行
- python - 使用时间戳创建注释列表
- android - getActivity().finish() 上的空指针异常
- python-3.x - 如何在 python3 simplekml 中为一个点添加高度?
- java - 如何从java中的json对象中读取多个值
- flutter - 使用 `SingleChildScrollView` Flutter 的不同行为
- python - 在没有控制台的情况下将 Python 脚本转换为 exe 时,Tesseract OCR 不起作用
- python - 下载图像文件时未找到文件错误
- database - 我可以在颤振应用程序中保存本地磁盘数据库吗?文档目录在哪里创建路径?