gpt4 book ai didi

c# - 如何在 Entity Framework 中配置与中间包装类的一对多关系

转载 作者:太空宇宙 更新时间:2023-11-03 15:14:42 24 4
gpt4 key购买 nike

我正在使用 Entity Framework 6.1 作为 ORM。我想在 RuleCode 实体之间配置一对多关系。我想使用一个名为 RuleParameters 的中间包装类来完成此操作。此外,我不希望在数据库中表示此包装器对象。

这在 EF 中可行吗?如果是这样,我缺少什么注释/流畅的 api 配置?

这是我的设置。为了简洁起见,我在这里通过 Fluent 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; }
}

关于c# - 如何在 Entity Framework 中配置与中间包装类的一对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39475156/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com