【发布时间】:2020-08-23 12:49:39
【问题描述】:
我的程序在使用实体框架获取值时挂起。这是我的简单代码:
LearningEnglishEntities db2 = new LearningEnglishEntities();
List<tb_Words> searchedItems = db2.tb_Words.ToList(); // it hangs here
这不是异步方法。有solutions 关于async,但我没有找到任何解决方案来解决我的问题。
它没有响应,它一直在等待。我所有的代码一直运行到 2 天前。我没有输入或做任何事情,这个错误发生了(短视频是here)
到目前为止,我已经尝试过这些事情:
-
我从我的解决方案中删除了实体框架模型并再次添加了它
-
我创建了一个新程序,并且使用了完全相同的代码和模型(它有效):
LearningEnglishEntities1 db = new LearningEnglishEntities1(); List<tb_Words> sample = db.tb_Words.ToList(); // It worked -
我cleaned我的解决方案
-
我输入了这个代码:
var query = from item in db.tb_Words select item; // It hangs the same way -
我检查了这段代码不是由另一个线程运行的:
bool query0 = this.InvokeRequired; if (!query0) { LearningEnglishEntities db2 = new LearningEnglishEntities(); List<tb_Words> searchedItems = db2.tb_Words.ToList(); // It still hangs } -
我将 Entity Framework 6.0x 版本更改为 5.0x,但它没有 工作。
-
我完全copied所有文件并粘贴到一个新项目。它运行了,但没有工作
-
我重新启动了 Microsoft 分布式事务协调器服务并检查了启动类型是否为自动。没用。
奇怪的是,它适用于其他项目,但它挂在这个项目上。我还没有找到任何解决方案来修复这个错误。你觉得我该怎么办?
我的连接字符串也是:
<connectionStrings><add name="LearningEnglishEntities" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string="data source=DESKTOP-REKGVD4\SQLEXPRESS;initial catalog=LearningEnglish;integrated security=True;multipleactiveresultsets=True;application name=EntityFramework"" providerName="System.Data.EntityClient" /></connectionStrings>
谢谢
【问题讨论】:
-
我不确定我是否有答案,但如果您指定您正在使用的 EF(EF 或 EF Core)和版本号会很有帮助。
-
是不是表记录太多,取数据时间长?试试
.Count()看看它返回什么值。还要查看客户端应用程序和数据库服务器的内存和 CPU 使用情况。可能是有效的新程序正在连接到另一个记录较少的数据库? -
@BryanLewis 感谢您的评论。我忘记打字了。我编辑了我的问题,我正在使用 EF 5.0.0。现在
-
@SherifElmetainy 感谢您的评论。我认为这是不可能的,因为当我通过在我创建用于测试的其他项目上使用完全相同的数据库、EF 模型和代码来尝试它时,它起作用了。我的 Tb_Words 表有 14 行
-
你能显示你的连接字符串吗?您是否在配置文件或数据库模型中定义了它?
标签: c# sql entity-framework freeze