2017-09-26 54 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文档并在服务器上解析它。

相关问题