每条记录只有 3 个 1:1 关系中的 1 个是非空的

问题描述 投票:0回答:0

我有一个活动。可以为活动、县或州设置此事件。它始终只是三者之一。 (虽然竞选/县级事件确实发生在给定的州,但它不是州级事件。)

public class Event
{
    public Campaign? Campaign { get; set; }

    public County? County { get; set; }

    public State? State { get; set; }

    // lots of additional properties
}

所以这是问题。这是在使这一切在 EF 中工作的背景下:

  1. 有没有办法告诉 EF 其中一个必须是非空的?
  2. 有什么办法,就像旧的 C 联合构造一样,这三个可以是这三个类之一的单个非空属性(即我不想将其声明为对象)。

如果以上问题的答案是否定的,如果我创建一个所有三个类都实现的接口,EF 有什么缺点吗?

出于好奇(在这种情况下接口更有意义),让所有三个扩展一个公共基类在 EF 中有什么缺点吗?

entity-framework entity-framework-core
© www.soinside.com 2019 - 2024. All rights reserved.