ORMとしてEntity Framework 6.1を使用しています。 Rule
とCode
エンティティの間に1対多の関係を設定したいと思います。私はRuleParameters
と呼ばれる中間ラッパークラスでこれを行いたいと思います。また、私はこのラッパーオブジェクトをDBに表現したくありません。Entity Frameworkの中間ラッパークラスと一対多の関係を構成する方法
これはEFで可能ですか?もしそうなら、どのようなアノテーション/流暢なAPI設定が欠けていますか?
これは私の設定です。私はここで流暢なAPIを介して簡潔に注釈を表示しています。私が遭遇した
public class Rule
{
public Rule()
{
Parameters = new RuleParameters();
}
public int RuleId { get; set; }
[NotMapped]
public RuleParameters Parameters { get; set; }
}
public class RuleParameters
{
public virtual IList<Code> Codes;
}
public Code
{
public int CodeId { get; set; }
public int RuleId { get; set; }
[ForeignKey("RuleId")]
public Rule Rule { get; set; }
}
問題:
RuleParameters
私は自然に複合型としてそれを扱いたい、しかしCodes
協会(1/2)(2/2)に起因するものではないことができるように実体ではありません。- EFからの
RuleParameters
ラッパーを隠すと同時に、一対多の関係を構成することは矛盾しているようです。
@GertArnold '[NotMapped]'は、 'RuleParameters'を隠すためのものです。しかし、そうすることは、エンティティ間で構成したいあらゆる種類の関係を隠すことにもなります。したがって、矛盾です:(。 – Mantzel
'RuleParameters'を隠すことはできません。複雑な型としてマップする必要があります。流暢なAPI、またはデータアノテーションを使用しています –