我有一个对象列表。对于该列表中的每个对象,我调用一个存储过程来保存该对象。然后,我从该存储过程获取输出以设置对象的 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/