2017-04-11 96 views
1

我正在使用C#/ JS(with Handlebars.NET)爲我的學士論文遷移/重新開發JavaScript應用程序到ASP.NET MVC框架的Web應用程序。將業務對象映射到多個數據庫表

到目前爲止,我已經創建了一個Web.API和一個窗體的實際應用程序。 在應用程序中,我輸入詳細信息以創建一個新員工,然後發佈到API,該API將Json對象作爲「業務對象」BOEmployee接收。

說BOEmployee看起來像這樣(簡化):

public class BOEmployee 
    { 
     public int ID_Employee { get; set; } 
     public int ID_Company { get; set; } 
     public string lastName { get; set; } 
     public string firstName { get; set; } 
} 

欲此對象映射到其他兩個對象,表示底層數據庫的表,以然後將它們保存到數據庫中。這兩個目標表是使用Entity Framework自動生成的。

下面是表對象:

1.員工:

public partial class Employee 
    {  
     public int ID_Employee { get; set; } 
     public int ID_Company { get; set; } 
} 

2. Employee_Details:

public partial class Employee_Detail 
    { 
     public int ID_Employee_Detail { get; set; } 
     public int ID_Employee { get; set; } 
     public string lastName { get; set; } 
     public string firstName { get; set; } 
} 

現在我可以通過每一個屬性分配手動映射它們但顯然這是一個可怕的不可持續的想法。所以我一直在尋找一種方式來自動使用自動Json.Net像這樣的映射過程:

[HttpPost] 
public BOEmployee SaveEmployee([FromBody] string employee) 
{ 
    using (var context = new myDBEntities()) 
      { 
       JavaScriptSerializer serializer = new JavaScriptSerializer(); 

       Employee_Detail dbEmployeeDetails = serializer.Deserialize<Employee_Detail>(BOEmployee); 
       Employee dbEmployee = serializer.Deserialize<Employee>(BOemployee); 
    } 
} 

現在,當我運行的代碼是什麼情況,即串行功能抱怨輸入值不能爲null ,這對我的理解是因爲目標對象(例如Employee)沒有在序列化的Json-Object中給出的所有屬性。

錯誤消息是這樣的:

值不能爲空\ r \ n參數名:輸入」,

「ExceptionType」: 「System.ArgumentNullException」

現在我的問題是,如何將我的對象映射到不同的數據庫表?或者我現在完全在錯誤的路徑上?

對t的基本變化由於可用的時間,他的程序結構不能再做出來(我基本上是一個完整的編程初學者)。

回答

1

我推薦AutoMapper比你在那裏使用。

+0

感謝您的回答。儘管Automapper不會將該Json-String轉換爲C#對象。 –