【发布时间】:2022-01-22 10:45:30
【问题描述】:
我有一个用 C# 编写的 Windows 窗体应用程序。一种是数据输入表单,带有保存按钮。
点击保存按钮后,代码首先将所有文本框转换为大写字母。然后它将 SQL 表字段的所有变量声明到识别文本框
ex(有几种类型的绑定)
var vlast = textBox_V_lname.Text;
正如预期的那样,所有这些工作都非常快(我使用断点来查找延迟)。在这里,一切都挂起。它挂起大约 30 秒(这是一个很长很长的时间,当表中只有 900 条记录时)。
var badger_History = new Badger_History() { v_noaccess_flag = myacess, v_lastname = vlast, v_firstname = vfirst, v_child = vchild, v_company = vcompany, v_issue_date = vdate, v_location = mylocation, comments = mycomments, h_lastname = hlast, h_firstname = hfirst, h_middle_init = hmiddle, h_title = htitle, h_phone = hphone, h_org = horg, h_work_location = hlocation, pass_type = type, pending_flag = pending };
oBadger_History.Add(badger_History);
它就挂在这里:oBadger_History.Add(badger_History);
badger_History 是表格插入的模型。我可以发布模型本身,但这看起来很正常。
我当然尝试过使用 SQL 管理器手动添加记录,并且按预期立即工作。
我无法弄清楚导致挂起的原因。当我将鼠标悬停在“oBadger_History.Add”上并转到定义时,我看到的只是这一行
public virtual void Add(EntityType entity);
注意:这是另一位员工开发的应用程序,现已退休。我通常不使用 Winforms 应用程序,所以 - 我在这里不知所措。
感谢您对正确方向的任何见解或推动。
我可以根据需要添加更多代码 - 只是不确定是否需要发布更多代码
【问题讨论】:
-
你使用的是什么 ORM。什么是 SQL 管理器
-
您需要找到该
Add方法的所有实例,因为它被派生类覆盖。不幸的是,您的表现不足以让我们指出您应该在哪里寻找或真正提供帮助。public virtual void Add(EntityType entity);应该有一个与之关联的类。 -
是您要添加到列表中的列表还是实际的 dbcontext?该列表中有多少条记录?列表中的记录越多,插入的速度就越慢。如果可能,每次都使用新的 dbcontext