繁体   English   中英

如何刷新 Entity Framework Core DbContext 但保留我的属性装饰?

[英]How to refresh Entity Framework Core DbContext but keep my property decorations?

我正在使用以下组件创建一个新的 .NET 核心应用程序:

  1. .NET Core 3.0 Web API for api
  2. web UI 的 .NET 核心 Razor 页面
  3. .NET 核心 class 库 - 一个用于实用程序,一个用于 model

我正在为 model 使用实体框架核心。 我通常讨厌 ORM 工具,但时间对于这个项目来说至关重要,所以我没有太多选择。 我不得不说,考虑到所有因素,它非常可靠。

我遇到的问题之一是我必须使用 JsonIgnore 属性来装饰我的模型的一些属性,例如:

[JsonIgnore]
public virtual ICollection<LabOrder> LabOrders { get; set; }

这样做的原因是,否则,当我序列化 object(为了从 api 返回它)时,.NET 会抛出关于太多嵌套级别的异常,或者由于父-子-回-父关系会导致永无止境的递归发生。 所以,一切都很好,JsonIgnore 属性正是我所需要的。

但是,这是我的问题。 我已经经历了在任何我需要的地方装饰这些属性的麻烦,并完成了第一轮开发和测试。 我需要对我的数据库 model 进行一些调整; 我已经完成了……现在是时候刷新 EF Core dbcontext。 创建属性或方法时,我可以使用部分类来保留我对 model 所做的任何“自定义”更改,但我不知道如何在这里完成。

那么:是否有可能保留我的财产装饰并仍然使用 Scaffold-dbcontext 命令刷新 model? 我过去曾成功使用过该命令,但现在我需要确保我不会丢失我的更改。

我相信我已经确定这实际上是不可行的。

https://forums.asp.net/t/2139531.aspx?Loading%20MetaData%20from%20Partial%20Class%20in%20Aspnet%20Core

我已经阅读了所有可以在这里找到的内容、论坛和 MS 文档。 应该可以工作,但是在 ModelMetadataClass 中根本不尊重装饰。 做到这一点的唯一方法是实现另一个层,例如视图模型并在那里处理它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM