c# - 如何减少来自 .NET Windows 应用程序的数据库 (SQL Server) 调用

标签 c# sql sql-server optimization architecture

我有一个对象列表。对于该列表中的每个对象,我调用一个存储过程来保存该对象。然后,我从该存储过程获取输出以设置对象的 ID 属性。所以,如果我有一个包含 100 个对象的列表,我将调用数据库 100 次。

为了对此进行优化,我计划使用 XML 作为存储过程的参数。对象列表将由分层 XML 表示,存储过程将解析 XML 并根据 XML 值调用 100 插入/更新。我不确定如何获取每个对象的返回值。你能帮忙吗?您还有其他优化想法吗?我只使用 ADO.NET,没有像 Entity Framework 这样的 ORM。

最佳答案

使用表值参数并在存储过程中执行插入/更新,然后选择更改的行以在对数据库的一次调用中获取所有 ID。在 C# 和 SQL Server 中使用 Google TVP,您会发现许多有关如何执行此操作的示例。

关于c# - 如何减少来自 .NET Windows 应用程序的数据库 (SQL Server) 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19986786/

相关文章:

c# - ASP.NET CORE 将 Razor View 渲染为带有 Controller 参数的字符串

c# - 何时何地使用表达式树

MYSQL 查询不工作,对于这种情况是否有更简单的查询?

sql - 获取忽略 Null 或零值的 AVG

sql - 如何阻止嵌套存储过程的结果显示在顶层?

c# - 如何在 ASP.NET Core 中将我的服务注册拆分成不同的文件?

c# - 使用 C# 中的 2D 字符串数组填充 JavaScript 数组

sql - SQL左外部联接的where子句

php - 如何在 mysql 表中显示每个父级的子级

sql-server - T-SQL SQL Server 2014 中的 HTML 转义