我在这里遇到了一个特殊情况,我一直试图弄清楚如何在Fluent Api中配置它。
我有一个名为 Customers 的现有数据库中的表。我无法对此表进行任何修改。
我尝试在外部数据库中实施 CustomerGroup 表。由于我无法修改Customers表,因此无法向Customers添加外键。客户可能属于也可能不属于客户群。
我可以就如何处理此问题使用一些建议。这不是一个理想的情况,因为我无法修改customers表。由于我试图在同一台服务器上的一个单独的数据库中实现它,我知道可能存在一些完整性问题,因为我无法在客户和客户组之间实现真正的密钥关系。
现在我的方法一直在尝试实现一种具有CustomerId CustomerGroupId的联结表。我试图配置流畅的api来在我的客户实体和我的CustomerGroup实体之间建立导航属性,而没有单独的实体。
代码示例(简化):
public class Customer
{
public int Id { get; set; }
public string Name { get; set; }
public CustomerGroup CustomerGroup { get; set; }
}
public class CustomerGroup
{
public int Id { get; set; }
public string Name { get; set; }
public ICollection<Customer> { get; set; }
}
数据库:
客户
CREATE TABLE [dbo].[Customer]
(
[Id] INT NOT NULL PRIMARY KEY IDENTITY,
[Name] VARCHAR(100) NOT NULL DEFAULT ''
)
CustomerGroup
CREATE TABLE [dbo].[CustomerGroup]
(
[Id] INT NOT NULL PRIMARY KEY IDENTITY,
[Name] VARCHAR(100) NOT NULL DEFAULT ''
)
CustomerGroupCustomer
CREATE TABLE [dbo].[CustomerGroupCustomer]
(
[Id] INT NOT NULL PRIMARY KEY IDENTITY,
[CustomerGroupId] INT NOT NULL,
[CustomerId] INT NOT NULL UNIQUE,
CONSTRAINT [FK_CustomerGroup_Customer_CustomerGroup] FOREIGN KEY ([CustomerGroupId]) REFERENCES [CustomerGroup]([Id]) ON DELETE CASCADE
)