1对多关系

时间:2011-03-12 06:05:37

标签: c# asp.net-mvc-2

我正在尝试基于databasemodel创建一个objectmodel。数据库模型包含外键约束。例如,我有3个表:Company,Employee和ShareHolder。 公司有一个或多个员工,公司有一个或多个ShareHolders。 Employee和ShareHolder表具有Company表的外键引用。所以,当我创建我的对象Model时,我得到:

public class Company
{
    public string CompanyID {get;set;}
    List<Employee> Employees {get;set;}
    List<ShareHolder> ShareHolders {get;set;}
}

这是最方便的方法吗?

3 个答案:

答案 0 :(得分:0)

对我而言,我会这样做。

public class Company
{
    public string CompanyID {get;set;}
    List<Employee> Employees {get;set;}
    List<ShareHolder> ShareHolders {get;set;}
}

public class Employee
{
    public string CompanyID {get;set;}
    //...
}

public class ShareHolder
{
    public string CompanyID {get;set;}
    //..
}

答案 1 :(得分:0)

是的,这是最明显的方法。特别是如果您的申请以公司为重点。

根据您在应用中使用对象的方式,您可能会有来自EmployeeShareHolder的反向链接,这样您就可以轻松导航EmployeeShareHolder回到Company而没有过多的搜索。

public class Person
{
    public string Name {get;set;}
}

public class Employee : Person
{
    public Company Workplace {get;set;} // might be List<Company> depending on your application needs
}

public class ShareHolder : Person
{
    public List<Company> OwnedCompanies {get;set;}
}

答案 2 :(得分:0)

由于它是视图模型,我根据视图的作用将它命名为CompanyDisplay或CompanyInput。