Entity framework 实体框架5继承生成为TPT而不是TPH?
我试图实现一个组表所固有的各种表。当我从模型生成数据库时,它显示为每个表的类型,而不是像我所希望的那样的每个继承的类型 我有:Entity framework 实体框架5继承生成为TPT而不是TPH?,entity-framework,entity-framework-5,Entity Framework,Entity Framework 5,我试图实现一个组表所固有的各种表。当我从模型生成数据库时,它显示为每个表的类型,而不是像我所希望的那样的每个继承的类型 我有: 组设置为抽象 当类型(列)=每个表的不同int时,每个组类型表都有条件地映射到组 有人能给我指出正确的方向吗?我需要做什么才能将此更改为每继承类型 编辑:通过注释请求这里是我为组设置的db,并且没有dbset的任何组类型 public DbSet<Group> Groups { get; set; } 另一种类型的团队,将来会有更多,但只有这两种,直到我开
public DbSet<Group> Groups { get; set; }
另一种类型的团队,将来会有更多,但只有这两种,直到我开始工作
public partial class HoaAttorney : Group
{
public string Address { get; set; }
}
您应该仅将您的组DBSet用于TPH。
还要确保没有将表注释添加到poco类中您应该只将组DBSet用于TPH。
还要确保没有将表注释添加到poco类中试试看这个博客,它在过去对我有用
还讨论了
每类型表(TPT)
和每具体类表(TPC)
继承 试试看这个博客,它过去对我很有用
还讨论了每类型表(TPT)
和每具体类表(TPC)
继承
当我从模型生成数据库时
您是否使用模型优先策略?不幸的是,这将使您的模型很难获得TPH继承(这对于代码优先或数据库优先策略来说很容易)
(代码优先的默认继承映射是TPH,因此您不应该有代码优先的问题。)
开箱即用TPH不适用于Model First。Model First的默认继承策略是TPT,在Model designer中需要切换到TPH:
可以先使用模型映射到TPH继承,但是
必须编写自己的数据库生成工作流
复杂的。然后将此工作流分配给数据库
EF设计器中的生成工作流属性。更容易的选择
首先是使用代码
微软还有一个额外的工具,它支持Model First的TPH数据库生成工作流。但问题是,它看起来没有得到很好的维护(上次更新从2012年5月开始),并且不支持Visual Studio 2012。但是如果你使用VS2010,你可以试试
当我从模型生成数据库时
您是否使用模型优先策略?不幸的是,这将使您的模型很难获得TPH继承(这对于代码优先或数据库优先策略来说很容易)
(代码优先的默认继承映射是TPH,因此您不应该有代码优先的问题。)
开箱即用TPH不适用于Model First。Model First的默认继承策略是TPT,在Model designer中需要切换到TPH:
可以先使用模型映射到TPH继承,但是
必须编写自己的数据库生成工作流
复杂的。然后将此工作流分配给数据库
EF设计器中的生成工作流属性。更容易的选择
首先是使用代码
微软还有一个额外的工具,它支持Model First的TPH数据库生成工作流。但问题是,它看起来没有得到很好的维护(上次更新从2012年5月开始),并且不支持Visual Studio 2012。但是如果您使用VS 2010,您可以试试。请显示您的映射有一个非常全面的示例。@lazyberezovsky我的映射在这里,您可以在context@kirsteng将数据库集添加到问题中。谢谢大家到目前为止的帮助。请显示您的映射有一个非常全面的示例。@lazyberezovsky我的映射在这里。您能在context@kirsteng将数据库集添加到问题中。谢谢大家到目前为止的帮助,我似乎还不能让这个工作。我在原来的问题中添加了这些类。谢谢你到目前为止的帮助。我似乎仍然无法让这个工作。我在原来的问题中添加了这些类。谢谢你迄今为止的帮助。这是非常令人失望的发现,但这是我一直在寻找的信息。谢谢你。在一天结束时,我将标记为答案,以便留出一点时间让其他人可能提供其他信息。发现这一点非常令人失望,但这正是我所寻找的信息。谢谢你。向上投票&将在一天结束时标记为答案,以便留出一点时间让其他人可能提供其他信息。
public partial class HoaManagementCompany : Group
{
public string Address { get; set; }
public string Address2 { get; set; }
public string City { get; set; }
public string State { get; set; }
public string Zip { get; set; }
}
public partial class HoaAttorney : Group
{
public string Address { get; set; }
}