gpt4 book ai didi

c# - 多次调用 con.execute() 是否重要?

转载 作者:行者123 更新时间:2023-11-30 21:37:47 26 4
gpt4 key购买 nike

考虑以下内容(使用 dapper)示例 1:

var query = @"INSERT INTO FOO (ID, Name) VALUES (1, 'Test')
INSERT INTO FOO (ID, Name) VALUES (2, 'ABC')";

using(var con = connection)
{
con.Execute(query);
}

示例 2:

var queryOne = "INSERT INTO FOO (ID, Name) VALUES (1, 'Test')";
var queryTwo = "INSERT INTO FOO (ID, Name) VALUES (2, 'ABC')";

using(var con = connection)
{
con.Execute(queryOne);
con.Execute(queryTwo);
}

我想了解执行 2 个插入的方式是否重要。根据我的理解,con 在 using 语句中打开并在 using 语句退出时关闭。

我调用 con.Execute() 多少次重要吗?将它放在一个查询下会更好吗?我问这个是为了确定我的应用程序的设计,以便我知道我是否应该加倍努力,尝试让每个人都在一次执行中。

不确定这是否重要,但我打算使用 SQL Server。

最佳答案

没有人能真正回答你的问题,因为没有人真正知道你如何评价“更好”。

单一执行方法的一个优点是您的应用程序与服务器的往返次数较少。换句话说,开销更少,等待更少。如果您的应用没有快速可靠地连接到实例,那可能很重要。一个缺点是,如果发生错误,您的应用程序可能无法识别是哪条语句导致了错误。

此外,您还可以构造单个语句来插入多行 - 而不是在一个字符串中创建多个语句。例如,

insert dbo.FOO (ID, Name) values (1, 'Test'), (2, 'ABC'); 

这有什么区别吗?一个轻微的,但你是法官。这些都是简单的例子,没有一个对所有情况都“最佳”的单一答案/方法。而且您确实需要考虑您的事务边界 - 您是否希望将两行作为一个工作单元插入(因此,如果一个失败,另一个也不会插入)?

关于c# - 多次调用 con.execute() 是否重要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46879454/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com