3

如何在不使用实体框架和数据表的情况下将 C# 中的复杂对象插入 SQL Server(我考虑过 Dapper.Contrib,但它仅适用于实体)。

我现在正在使用存储过程和 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 个存储过程

谢谢。

4

2 回答 2

0

理想情况下,您会使用处理此问题的 ORM,但一种选择是使用原始 SQL 字符串,因为您将整个查询构建为一个字符串(或多个字符串),对其进行参数化并执行它。一个快速的谷歌在这里给出了例子;https://codereview.stackexchange.com/questions/59863/transaction-handling-for-multiple-sql-statements。重要的注意事项是;

  • 值是参数化的
  • 语句作为事务执行(因此在出现问题时都将回滚
于 2017-09-26T14:26:37.870 回答
0

如何在不使用实体框架和数据表的情况下将复杂对象从 C# 插入 SQL Server

SQL Server 可以解析XML,较新的版本也可以解析JSON。因此,在没有 ORM 的情况下将整形数据插入 SQL Server 的最简单方法是发送 XML 或 JSON 文档并在服务器上对其进行解析。

于 2017-09-26T16:30:03.857 回答