簡體   English   中英

如何在Entity Framework中使用中介包裝器類配置一對多關系

[英]How to configure one-to-many relationship with intermediary wrapper class in Entity Framework

我正在使用Entity Framework 6.1作為ORM。 我想在RuleCode實體之間配置一對多關系。 我想使用稱為RuleParameters的中間包裝器類來執行此RuleParameters 另外,我不希望這個包裝對象在數據庫中表示。

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包裝器,同時配置一對多關系似乎是矛盾的。

為什么要使用中間類? 在沒有中間階級的情況下建立關系。

public class Rule
{
   public Rule()
   {
      Codes = new HashSet<Code>();
   }

   public int RuleId { get; set; }

   public ICollection<Code> Codes { get; set; }
}

public Code
{
   public int CodeId { get; set; }

   public int RuleId { get; set; }

   public virtual Rule Rule { get; set; }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM