如何解决EntityFramework Core 5,有一个公用表供 2 个不同的实体使用
场景:
我有 2 个其他实体(站点和客户详细信息),这两个实体都有一个地址属性(对结构的另一种思考方式是将 ClientDetails.Address 视为总部,将 Sites/Site.Address 视为全国各地的办公楼)。
我正在尝试找出对关系进行排序,目前它在抱怨,因为当我添加 ClientDetails.Address 时,它在 ClientDetails.Sites.Address FK 约束上失败。
我想我可能需要通过 Fluent API 手动配置关系,但我想如果有人有类似的情况我会问(我确定我不是第一个想要这样做的人)!
我正在尝试使用 CodeFirst 方法执行此操作,我的模型构建器配置中没有其他配置。
该项目使用 .NET 5 和 EF Core 5
我开始认为 Table Splitting 是解决这个问题的方法,但到目前为止我看到的例子对我来说似乎不太有意义。
数据库架构:
错误:
ClientDetails.cs
public class ClientDetails
{
public Guid ClientDetailsId { get; set; }
public string Name { get; set; }
public virtual Address Address { get; set; }
public Byte[] Image { get; set; }
public List<ClientStaff> Staff { get; set; }
public List<Site> Sites { get; set; }
}
Site.cs
public class Site
{
public Guid? SiteId { get; set; }
public string AccessCode { get; set; }
public PointOfContact PointOfContact { get; set; }
public Guid ClientDetailsId { get; set; }
public ClientDetails ClientDetails { get; set; }
public virtual Address Address { get; set; }
}
地址.cs
public class Address
{
public Guid AddressId { get; set; }
public string LineOne { get; set; }
public string LineTwo { get; set; }
public string LineThree { get; set; }
public string PostalCode { get; set; }
public Guid ClientDetailsId { get; set; }
public virtual ClientDetails ClientDetails { get; set; }
public Guid SiteId { get; set; }
public virtual Site Site { get; set; }
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。