相同类型的多对多和一对多关系

时间:2020-04-05 19:06:46

标签: c# .net .net-core entity-framework-core ef-core-3.1

我有一个内部消息传递应用程序项目。业务需求需要两种类型的地址,纯文本地址或地址代码,它们只是地址的简写形式。您可能会认为它像无线电操作员的名字,但不太神秘。

此外,EF Core需要多对多类的联接类。因此,地址关系变得复杂。

这是一个示例.btn:active { background: #fff !important; color: #343a40 !important; } 类。您会看到Message可为空。

Info

这是我提到的关系类。

#nullable
public class Message
{
    public MessageAddress From { get; set; }
    public List<MessageAddress> To { get; set; }
    public List<MessageAddress>? Info { get; set; }
    public string Subject { get; set; }
    public string MessageBody { get; set; }
}

您可以看到我已经使用枚举为两种类型的地址创建了public class MessageAddress { public Guid MessageId { get; set; } public Message Message { get; set; } public Guid AddressId { get; set; } public Address Address { get; set; } } 类。为了简洁起见,我省略了该枚举。这是代码。

Address

您可以看到,我具有一对一的关系和两个多对多的关系,并且具有相同类型的拥有类。在public class Address { public string Address { get; set; } public Guid AddressId { get; set; } public AddressType AddressType { get; set; } // Enum: PlainText, AddressCode public ICollection<MessageAddress> MessageAddresses { get; set; } } 上,我看到以下错误消息:

Add-Migration AddressUpgrade -Verbose

我损失了大约3个小时。我该怎么做才能正确实施该要求?

0 个答案:

没有答案