2011-03-12 115 views
2

我想創建一個基於databasemodel的objectmodel。數據庫模型包含外鍵約束。例如,我有3個表格:Company,Employee和ShareHolder。 公司有1名或更多員工,公司有1個或更多的股東。 Employee和ShareHolder表具有對公司表的外鍵引用。所以當我創建我的對象模型時,我得到:1對多關係

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

這是最簡單的方法嗎?

+0

什麼是對象模型?你使用的代碼是EF還是什麼?你正在創建一個視圖模型? – 2011-03-12 06:19:59

+0

是試圖創建一個ViewModel – user603007 2011-03-12 06:42:51

回答

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;} 
    //.. 
} 
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;} 
} 
0

由於它對於視圖模型,我會根據視圖的作用將其命名爲CompanyDisplay或CompanyInput。