1

データベース(SQL)には、参照整合性を目的として存在するルックアップテーブルがいくつかあります。それらの同じテーブルは、その周りにビジネスロジックがあるため、列挙型を使用してコードで表されます。ローカリゼーションが問題になると、ローカリゼーションテーブルが各エンティティに追加されました(ローカライズ可能なフィールドを含む)。列挙型は現在(リソースファイルを介して)変換されていますが、ルックアップテーブルごとにローカリゼーションテーブルも存在します。

「ルックアップテーブル」には子テーブルが関連付けられていることを念頭に置いて(エンティティフレームワーク5)、この列挙型とルックアップテーブルの関係をモデル化する方法についていくつかの推測を得たいと思っていましたが、列挙型を保持することを目的としていますコード..

4

1 に答える 1

0

【ハウスクリーニングの取り組み】それ以来、私がこれに取り組んできた方法は

列挙型がビジネス上の意思決定を促進しない場合、私は通常、列挙型を持っていません。

ある種のビジネス上の意思決定を促進する列挙型である場合、私は通常、これをフラグ列挙型にし、データベースエントリにはフラグ列挙型の値が含まれます。通常、これらの値がラベルとペアになっている実際のルックアップテーブルがあり、場合によっては追加のメタデータがあります。

次に、ある種のキャッシュメカニズムを使用して、ルックアップテーブルを事前に(または遅延的に)ロードして、上記の列挙型をUIの適切なラベルに変換します。

ある種のメタデータがある場合、列挙型に関連付けられるすべてのデータを使用してクラスを作成するか、列挙型の拡張メソッドを使用して静的クラスを作成し、そのメタデータの拡張を担当します。

元:

列挙型番号{1、2、3}

Number.One.GetLabel(); Number.One.IsEven()

おそらく、最初の取得後にその情報をキャッシュする静的フィールドを保持します。

于 2020-11-19T20:01:10.127 に答える