正确的模式设计父子类

如何设计Parent-Child类。

注意:这里Parent不是基类,而是显示一对多关系。

方法“A”

public class Company { public int CompanyID; ... public IList Branches; } public class Branch { } 

Appraoch“B”

 public class Company { public int CompanyID; ... } public class Branch { public int CompanyID; //which represents company object } 

分支屏幕的最终UI设计:=

在树视图中显示以查看屏幕: –

 Company A Branch 1 Branch 2 Company B Branch 3 Branch 4 Branch 5 

添加/编辑屏幕(2个单独的屏幕): –

 Company - Company Drop-down other attributes of Branch 

1)如果我们看到View屏幕然后方法“A”看起来很好,如果我们看到添加/编辑屏幕方法“B”看起来很好。

2)在使用方法“A”时,当我必须返回分支数据时,我必须实际返回公司类型而不是分支类型:

 Company GetBranch(int BranchID) 

3)我们的数据库设计基于方法“B”,其中分支表存储CompanyID

有人可以建议一下这个好方法吗?

国际海事组织没有“权利”这样做。 这完全取决于您打算如何使用和存储/检索数据。

将分支机构存储在公司之下我的原因是巨大的流量开销(因为即使你关心的只是公司或特定分支,你总是会通过所有分支机构),单独使用ID我会导致额外的“查询”以加载所有相关信息数据。 我将使用与entity framework的工作方式类似的实现:

我将拥有分支和公司ID存储库并保留导航属性(Comany.Branches,Branch.Company)并具有填​​充仅在需要时调用的属性的函数。

例如,您可以使用仅返回公司的GetCompany(id)函数和将返回填充了其分支的公司对象的GetCompanyWithBranche(id,int? brandchid) (如果指定了id,则返回单个分支)。 这样,您就可以确定要检索的数据量。