如何刷新实体框架核心DbContext但保留我的属性装饰?

我正在创建一个具有以下组件的新.NET Core应用程序:

  1. 用于api的.NET Core 3.0 Web API
  2. 用于Web UI的.NET Core Razor页面
  3. .NET Core类库-一个用于实用程序,一个用于模型

我正在使用实体框架核心作为模型。我通常讨厌ORM工具,但是时间对于这个项目很关键,所以我没有太多选择。我必须说,从所有方面考虑,这确实很扎实。

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

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

这样做的原因是,否则,当我序列化该对象(以便从api返回它)时,.NET会因为过多的嵌套级别或由于父子背对父关系而抛出异常这将导致无限递归的发生。因此,无论如何,JsonIgnore属性都能满足我的需求。

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

所以:是否可以保留我的属性装饰,并且仍然使用Scaffold-dbcontext命令刷新模型?我过去已经成功使用了该命令,但是现在我需要确保我不会丢失我的更改。

bb09009 回答:如何刷新实体框架核心DbContext但保留我的属性装饰?

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

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

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

本文链接:https://www.f2er.com/3072937.html

大家都在问