C# 实体框架的关联继承
例如,考虑我的以下数据库模型C# 实体框架的关联继承,c#,entity-framework,C#,Entity Framework,例如,考虑我的以下数据库模型 UserTable(Id、用户名) TextContentTable(Id、名称、描述、CreatedByUserId、ModifiedByUserId、TextContent) ImageContentTable(Id、名称、说明、CreatedByUserId、ModifiedByUserId、ImageContent) 我想创建以下对象模型。但这有可能吗? 例如: 基本实体(Id) DescriptiveEntity(名称、描述):BaseEntity
- UserTable(Id、用户名)
- TextContentTable(Id、名称、描述、CreatedByUserId、ModifiedByUserId、TextContent)
- ImageContentTable(Id、名称、说明、CreatedByUserId、ModifiedByUserId、ImageContent)
- 基本实体(Id)
- DescriptiveEntity(名称、描述):BaseEntity
- TrackedEntity(由创建,由修改):描述实体
- 用户(用户名):BaseEntity
- Text内容(Text):TrackedEntity
- 图像内容(图像):轨迹属性
Thanx提前发布。对于实体框架的当前发布版本,我不确定这种方法是否是一个好主意。当一个类型(如TextContent)从一个类型(如BaseEntity)继承时,它必须具有与基类型相同的实体集。根据问题中概述的策略,应用程序中的所有实体都将具有相同的实体集。我不确定那是你想要的 然而,您可以通过接口获得大致相同的效果。例如,您可以有一个接口,它公开一个id属性。另一个接口ITrackedEntity可以公开CreatedBy和ModifiedBy。等等 这并不理想,但目前对我们来说已经足够好了。实际上,我们通过T4模板使用codegen来实现这些功能
实体框架的下一个版本可能具有一些特性,这些特性使此继承模式更易于实现,而不需要单个实体集。我想我理解您的符号。如何将CreatedBy和ModifiedBy映射到这两个表?按照我的阅读方式,只有ImageContentTable有一个ModifiedByUserId?这是一个错误还是故意的?Oeps犯了一个错误,我将编辑我的问题。TextContentTable还必须有一个ModifiedByUserId列。首先,为您的anwser设置所有thanx。好的,我会理解这在当前的发布版本中是不可能的,但我希望MS会考虑这些类型的对象模型。我会尝试用接口来做我的事情,这远不是理想的,但我认为我现在可以接受它;-)您提到了T4模板来实现这些接口,但请解释一下。T4很简单。每个类的接口支持都是相同的。因此,我们没有剪切和粘贴它,而是有一个类名数组,我们使用T4为数组中的每个类生成代码。它生成一个实现接口的分部类。在EF的下一个版本中,我们将能够通过T4自定义EF本身使用的codegen。