簡體   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