エンティティフレームワーク - 複数の値を差別します
-
28-10-2019 - |
質問
テーブルあたりのテーブルシナリオでは、考えられる値のリストを区別することは可能ですか?
たとえば、タイプの場合 Color, DarkColor, LightColor
何かのようなもの
Map<DarkColor>(m => m.Requires("TheColor").HasValue(Red || Blue)
Map<LightColor>(m => m.Requires("TheColor").HasValue(Yellow || White)
悪い例ですが、うまくいけばあなたは写真を撮ることを願っています!
解決
いいえ、不可能です。
エンティティフレームワークは、条件の組合ではなく、条件の交差点を使用してマッピングのみを有効にします。
これは両方で見ることができます デザイナー[1 EDMX構文[2]。
*最初にコードには同じマッピング機能が必要です。
2] edmxファイルを右クリックして「with ...」 - >「自動エディターセレクター(xml)」を選択し、(intellisenseから)マッピング条件を手動で編集してみてください。条件間で「または」を入力するオプション。
他のヒント
まず第一に、あなたが望むものが可能かどうかはわかりません、EFは差別列の列の世話をしたいと考えています。クラスのタイプに基づいて、差別装置の値、この場合はどのように進むのかを設定したい可能な値を設定します。 DBからロードするときに違いはありませんが、DBにシリアル化しようとすると少し問題があります。
1-可能な値ごとに複数のマップを実行しようとしましたか:) DarkColorがすでにマッピングされているというエラーがあるかもしれません。
2-2番目の提案は、[マップされていない]カラー級属性を追加し、TheColorに基づいて暗いまたは白を返すこと、およびこのプロパティを識別子フィールドとして使用することですが、識別子フィールドがテーブルに存在するはずだと思います。
所属していません StackOverflow