可以說我有以下實體映射到數據庫表(所有匹配的屬性名可以被認爲是PK/FK關係):如何連接控制器到服務層到庫層
public class Person
{
public int PersonID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
public class Employee
{
public int EmployeeID { get; set; }
public int PersonID { get; set; }
public int Salary { get; set; }
}
public class Executive
{
public int ExecutiveID { get; set; }
public int EmployeeID { get; set; }
public string OfficeNumber { get; set; }
}
public class Contact
{
public int ContactID { get; set; }
public int PersonID { get; set; }
public string PhoneNumber { get; set; }
}
我的架構如下:控制器調用服務層其中要求庫層。
我有一個視圖,名爲AddExecutive
,它收集以下信息:FirstName, LastName, PhoneNumber, Salary
和OfficeNumber
。
根據我的架構提交這些數據的最佳方式是什麼?我在想我,我會發布了一個包含所有我收集,將其傳遞給服務方法AddExecutive(AddExecutiveViewModel addExecutiveViewModel)
,那麼服務方法中我會創造的Person, Employee, Executive,
和Contact
新實例,並將它們連接到對方的信息視圖模型(Person
對象)並將所有數據傳遞給Repository方法AddExecutive(Person person)
。存儲庫方法然後將簡單地提交數據。這聽起來是對的嗎?什麼會是更好的解決方案?
我主要關心儘可能的關注點分離而言(嘿嘿),是我是否應該爲每個實體或不服務和信息庫。爲什麼我只能擁有行政服務和存儲庫?是否因爲其他實體可以鏈接在一起? – 2010-10-27 03:15:32
編號服務具有功能問題。 (基本上每個用戶案例的一種方法,大體上來說)。一個服務將信息作爲輸入,無論你是通過基元來完成,還是由自定義類取決於你。如果使用自定義類,請確保它保持在消息中,I.E .:不要使用大的狀態包來傳遞參數。 – Slappy 2010-10-27 03:21:32
你會考慮我上面描述爲「大OL狀態包」的AddExecutiveViewModel嗎? – 2010-10-27 03:31:13