将多个实体映射到一个表

时间:2016-09-30 01:46:26

标签: c# entity-framework entity-framework-6 mapping

在我的应用程序中,我有一个实体,比如Customer,它映射到Customer。现在工作正常。

我们的计划是将我们当前的项目作为对另一个客户项目的参考。客户端项目还有一个Customer表,但有一些额外的列。在客户端项目中创建另一个Customer实体会引发错误,说"这两种类型都有简单的名称"。

可以使用继承来解决这个问题。或者EF允许我们创建具有不同名称的类并将其映射到同一个表,例如Customer和CustomerClient都映射到Customer表,但CustomerClient还添加了其他列。

编辑:我在办公室后会尝试提供代码。

1 个答案:

答案 0 :(得分:0)

听起来实体框架继承就是你要找的东西, 尤其是 TPH(每个层次结构表),这是在实体frameork中实现继承的方法,其中所有派生实体都映射到同一个表。

TPT(每种类型的表)是另一个选项,其中所有衍生的类都映射到基类表旁边的自己的表。

如果您正在寻找有关实施TPH的更多信息,并且您首先使用EF代码这是一个很好的link,如果您使用的是设计师,则可以使用this。 / p>

这是一个教程how to choose EF inheritance strategy 注意:我没有提到TPC(Table Per Concrete Class)策略,这个策略也在本文中描述,因为我认为这不是你想要的。

This是一个很棒的视频课程教程,首先介绍使用代码的EF继承和设计师等等。

希望它有所帮助!