Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 实体框架中的复杂继承_C#_Database Design_Entity Framework 4 - Fatal编程技术网

C# 实体框架中的复杂继承

C# 实体框架中的复杂继承,c#,database-design,entity-framework-4,C#,Database Design,Entity Framework 4,这是我在这里的第一篇文章。提前感谢所有与我合作的人 我正在开发一个新的MER,这是其中的一部分: 在链接的MER中,我使用每个层次的表对实体:个人、公司和个人。驱动程序实体基于每种类型的表 我最大的问题是,司机可以是个人或公司 个人或公司均继承自持有两个实体公共字段的个人 有一种方法可以使驱动者实体灵活地成为个人或公司,使用驱动者实体上的每种类型的表格 谢谢大家 为什么不改变设计,说“驱动程序”是“关联的”(0..1),而不是从人那里继承的呢。基本上,将“驱动程序”作为个人的可选实体,那么个人

这是我在这里的第一篇文章。提前感谢所有与我合作的人

我正在开发一个新的MER,这是其中的一部分:

在链接的MER中,我使用每个层次的对实体:个人、公司和个人。驱动程序实体基于每种类型的

我最大的问题是,司机可以是个人公司

个人公司均继承自持有两个实体公共字段的个人

有一种方法可以使驱动者实体灵活地成为个人公司,使用驱动者实体上的每种类型的表格


谢谢大家

为什么不改变设计,说“驱动程序”是“关联的”(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的关联是正确的做法,因为它模拟了一个人可以成为驱动程序,也可以随时停止成为驱动程序的事实。(我也会将人重新命名为实体,因为一家公司并不是真正的“人”)。