问题是尝试在给定现有表结构的情况下映射继承。该表也被使用原始sql的旧版应用程序使用,即该表不能删除任何现有的架构详细信息,但可以向其中添加更多内容。
现有表已经映射,并且基本上有一堆字段存在以下问题....
所以现有的课程
class A
{
// Id etc
public virtual Client Client { get; set; }
}
表格结构如
table A (
Id INT IDENTITY NOT NULL,
Client_id INT null,
primary key (Id)
)
现在我想介绍一个基类
class Base
{
// Id etc
public virtual Client Client { get; set; }
}
最终会得到像......这样的表格。
table Base (
Id INT IDENTITY NOT NULL,
Client_id INT null,
primary key (Id)
)
并将A更改为
class A : Base
{
// clients moved to the base...
}
将在表格中执行以下操作: -
table A(
Base_id INT IDENTITY NOT NULL,
Id INT not null, // I will need to keep the existing Id field...
Client_id INT null, // this Client now conflicts with the Base client
primary key (Base_id)
)
我正在使用每个类继承的表。
问题是......
'客户'将在“基地”的桌子上,也在现有的“A”表上。我希望能够继续使用“A”上的“客户端”,作为一种覆盖。
我该怎么做?我可以这样做吗?
或者是否可能在表“Base”上根本没有“Client”,然后在所有子类表上定义“Client”? (这将使查询变得有趣)
答案 0 :(得分:0)