如何在不使用 Entity Framework 和数据表的情况下将复杂对象从 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 个存储过程
谢谢。
最佳答案
理想情况下,您会使用一个 ORM 来处理这个问题,但一种选择是使用原始 SQL 字符串,因为您将整个查询构建为一个字符串(或多个字符串),对其进行参数化并执行。一个快速的谷歌在这里给出了例子; https://codereview.stackexchange.com/questions/59863/transaction-handling-for-multiple-sql-statements .重要的注意事项是;
- 值是参数化的
- 语句作为事务执行(因此在出现问题时全部回滚
关于c# - 在没有 Entity Framework 和数据表的情况下将 C# 中的复杂对象插入到 SQL Server 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46429042/