C# 实体框架中的复杂继承
这是我在这里的第一篇文章。提前感谢所有与我合作的人 我正在开发一个新的MER,这是其中的一部分: 在链接的MER中,我使用每个层次的表对实体:个人、公司和个人。驱动程序实体基于每种类型的表 我最大的问题是,司机可以是个人或公司 个人或公司均继承自持有两个实体公共字段的个人 有一种方法可以使驱动者实体灵活地成为个人或公司,使用驱动者实体上的每种类型的表格C# 实体框架中的复杂继承,c#,database-design,entity-framework-4,C#,Database Design,Entity Framework 4,这是我在这里的第一篇文章。提前感谢所有与我合作的人 我正在开发一个新的MER,这是其中的一部分: 在链接的MER中,我使用每个层次的表对实体:个人、公司和个人。驱动程序实体基于每种类型的表 我最大的问题是,司机可以是个人或公司 个人或公司均继承自持有两个实体公共字段的个人 有一种方法可以使驱动者实体灵活地成为个人或公司,使用驱动者实体上的每种类型的表格 谢谢大家 为什么不改变设计,说“驱动程序”是“关联的”(0..1),而不是从人那里继承的呢。基本上,将“驱动程序”作为个人的可选实体,那么个人
谢谢大家 为什么不改变设计,说“驱动程序”是“关联的”(0..1),而不是从人那里继承的呢。基本上,将“驱动程序”作为个人的可选实体,那么个人或公司都将继承该实体。为什么不改变设计,说“驱动程序”是“关联的”(0..1),而不是从个人继承的。基本上,将“司机”作为个人的可选实体,然后个人或公司都将继承该实体。我认为您需要更改它,以便司机有一个人,而不是司机是一个人。i、 e.您有一个单独的驱动程序类,其上有一个名为Person的字段,该“Person”是个人或公司
或者,您应该将DriverNumber字段移动到Person类,这样,如果某个人(个人或公司)碰巧有一个驱动程序编号,那么他们就可以成为“驱动程序”。我认为您需要更改它,以便使驱动程序有一个人,而不是驱动程序是一个人。i、 e.您有一个单独的驱动程序类,其上有一个名为Person的字段,该“Person”是个人或公司
或者,您应该将DriverNumber字段移动到Person类,这样,如果某个人(个人或公司)碰巧有一个驱动程序编号,他们就可以成为“驱动程序”。当我设计时,我只是在面向对象模型中思考。你认为作为一个职业,司机是正确的吗?@gblmarquez都是公司司机吗?所有人都是司机吗?如果两者的答案都是肯定的,那么为什么不让公司和个人从“驱动者”而不是人中派生出来呢?当我设计时,我只是在面向对象模型中思考。你认为作为一个职业,司机是正确的吗?@gblmarquez都是公司司机吗?所有人都是司机吗?如果两者的答案都是肯定的,那么为什么不让公司和个人从“driver”而不是person派生出来呢?我不能将字段DriverNumber添加到person中,因为会有另一个类似driver的实体。也许顾客是我心目中的第一位。当我设计时,我只考虑面向对象模型。你认为作为一个类,驱动程序是正确的吗?驱动程序不应该继承自人:在现实世界中,任何人都可以随时成为驱动程序,或者他们可以不再是驱动程序,但在OO中,对象不能改变类。将“Driver”作为一个单独的类,并与Person建立1:0的关联是正确的做法,因为它模拟了一个人可以成为驱动程序,也可以随时停止成为驱动程序的事实。(我也会将Person重命名为Entity,因为公司不是真正的“Person”)。我不能将字段DriverNumber添加到Person,因为会有另一个实体,如Driver。也许顾客是我心目中的第一位。当我设计时,我只考虑面向对象模型。你认为作为一个类,驱动程序是正确的吗?驱动程序不应该继承自人:在现实世界中,任何人都可以随时成为驱动程序,或者他们可以不再是驱动程序,但在OO中,对象不能改变类。将“Driver”作为一个单独的类,并与Person建立1:0的关联是正确的做法,因为它模拟了一个人可以成为驱动程序,也可以随时停止成为驱动程序的事实。(我也会将人重新命名为实体,因为一家公司并不是真正的“人”)。