2017-09-26 30 views
1

如何從C#插入複雜對象到SQL Server而不使用實體框架和數據表(我想過Dapper.Contrib但它僅適用於實體)。從C#插入複雜對象到SQL Server而不使用實體框架和數據表

現在我正在使用存儲過程和Dapper,但是我只能插入一個對象,並且也只能使用動態參數,所以它不是我想要的。

例如:

DynamicParameters p = new DynamicParameters(); 
p.Add("ID", user.UserInformation.ID); 
p.Add("DELEGATORID", user.UserRole.DelegateID ?? string.Empty); 
p.Add("APPROVER", user.UserRole.Approver); 
p.Add("DELEGATOR", user.UserRole.IsDelegator); 
p.Add("SEARCHTEXT", searchText); 

然後插入。但我需要再做2次插入。

例如 - 我想3個複雜的對象在存儲過程中插入,然後執行爲每個對象

由於3存儲過程。

回答

0

理想情況下,您將使用一個處理此問題的ORM,但一種選擇是使用原始SQL字符串,因爲您將整個查詢構建爲字符串(或多個字符串),然後對其進行參數化並執行它。一個快速的谷歌給和例子在這裏; https://codereview.stackexchange.com/questions/59863/transaction-handling-for-multiple-sql-statements。需要注意的重點是;

  • 值爲參數
  • 的語句執行的交易(因此都將得到一個問題的情況下回滾
0

如何從C#中插入複雜的對象到SQL服務器不使用實體框架和數據表

SQL Server可以解析XML,新版本也可以解析JSON。因此,在沒有ORM的情況下將成形數據插入SQL Server的最簡單方法是發送XML或JSON文檔並在服務器上解析它。

相關問題