Entity framework 使用ado实体框架在DDD中组织我的域对象

Entity framework 使用ado实体框架在DDD中组织我的域对象,entity-framework,.net-3.5,domain-driven-design,oop,Entity Framework,.net 3.5,Domain Driven Design,Oop,我有两种类型的用户:父母和孩子,都是用户,具有相同的属性,但方法不同 我创建了基本用户类和2类:父类和子类,都继承了用户基类的形式,每个类都有一些不同的方法。 用户类是分部类,因为实体框架模型具有相同的类,因为数据库只有Users表,没有父级或子级 现在,当我从父类创建一个对象,并尝试使用ado实体框架在数据库中插入“AddObject(“Users”,(User)\u Parent)”时,会出现一个错误,即我正在插入父类,并且没有任何与此标识相关的内容可插入 那么,是我的域驱动设计有问题,还是

我有两种类型的用户:父母和孩子,都是用户,具有相同的属性,但方法不同

我创建了基本用户类和2类:父类和子类,都继承了用户基类的形式,每个类都有一些不同的方法。
用户类是分部类,因为实体框架模型具有相同的类,因为数据库只有Users表,没有父级或子级

现在,当我从父类创建一个对象,并尝试使用ado实体框架在数据库中插入“
AddObject(“Users”,(User)\u Parent)
”时,会出现一个错误,即我正在插入父类,并且没有任何与此标识相关的内容可插入


那么,是我的域驱动设计有问题,还是我应该在实体框架中编辑一些内容?

这称为逐层次表(TPH)。这意味着您希望使用一个表来存储从基本实体继承的多个实体。在您的例子中,它是有点特定的,因为继承的实体没有任何额外的属性来存储


您需要将父类和子类添加到实体模型(从用户实体派生)。您需要在数据库中增加一列来区分父项和子项-这是EF在您从用户表执行查询时知道要创建哪个实体的唯一方法。您需要将父实体映射到鉴别器列的正确值,并将子实体映射到鉴别器列的其他值。这是一个关于EF中TPH的问题。

完美的答案,帮了我太多,博客文章一步一步地引导我,一切都很顺利,谢谢。