- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我使用 MySQL(它不支持 MARS),我尝试并行运行多个 SELECT
。连接字符串是相同的,但是对于每个 SELECT
我都创建了另一个数据库上下文。
看起来像这样:
using (var db = DataContextCreator.Instance.Create())
{
return db.Customers
.Where(it => it.customer_Id > 10)
.Detach(db.Customers);
}
关于 Detach
的一句话 -- 它是获取一条记录或一堆记录的辅助方法。在第二种情况下,它列出了它们(使它们成为具体数据),并从数据库上下文中分离记录(因此 GC 可以释放数据库上下文)返回分离的数据。
现在它给我一个可怕的错误“已经有一个打开的 DataReader 与此连接关联,必须先关闭它”。因为我没有明确使用 DataReader,所以我想 100% 确定原因。
是因为我使用单个连接字符串来创建所有这些数据库上下文吗?或者换句话说——上述情况是否需要 MARS?
我问这个问题是因为我不想重新发明轮子,而且因为我的所有查询都相当小而且速度很快,所以我正在考虑愚蠢的解决方法——在数据库上下文创建器中使用锁。这样每个查询数据库的 block 都会保证不会与另一个 block 并行执行。
最佳答案
当您在单个 SqlConnection
对象上同时运行多个查询时,MARS 只是一个因素。
通常,每个 DbContext
对象都有自己的 DbConnection
对象,所以这可能不是这里的问题。
我认为这里的问题是,通过调用 Detach
方法,您可能在查询仍在执行时调用它。
我建议使用 AsNoTracking
实现目标的扩展方法。
也就是说,我会将函数 return 写成:
return db.Customers.Where(it => it.customer_Id > 10).AsNoTracking().ToList();
关于c# - EF 的多个上下文中的多个 SELECT 是否需要 MARS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14418877/
在使用包 Npsql 在 Mono 上使用带有 Entity Framework 的 PostgreSQL 数据库时和 Npsql.EntityFramework 尝试从控制台应用程序运行 Code
当我开始 eclipse 时,我收到此错误。 -vm 参数包含 java.exe 的路径,在 java 升级后,这在我的系统中是不可能的。我该如何纠正? Java 已启动但返回退出代码=13 C:/P
通常当我切换到 MARS 中的“执行”选项卡时,“文本”和“数据”窗口会最小化并且不会展开。实际上,“最小化”这个词是错误的——您只能看到标题栏的上半部分,所以您甚至无法访问最大化按钮。有没有其他人看
我不能在 eclipse mars 中使用默认存储库。例如 http://download.eclipse.org/eclipse/updates/4.5/ .代理没有问题。我可以联系http://d
我正在使用 eclipse mars 4.5。问题是,它总是忙于扫描类路径,这实际上让 Eclipse 运行起来太慢了。我正在处理多模块 OSGI 项目,因此工作区中大约有 30 个项目,eclips
我正在尝试从“坚持不懈的火星天气报告”(https://mars.nasa.gov/mars2020/weather/)中抓取数据。但是当我尝试抓取例如火星日期时,它会在列表中返回一个无项目。像这样:
上周突然之间,一个 javascript 文件将不再在比较编辑器中打开。 我正在运行最新的 Mars Eclipse 我正在运行最新的 Subclipse 我与 repo 同步,并查看更改的文件 当我
我正在尝试删除恢复保管库,但它有一些由 MARS 代理在不存在的计算机上生成的旧数据。没有用于删除这些的 UI 选项。我在下面尝试了 Powershell,但失败并显示 Get-AzureRmReco
所以,每次我想使用 JavaFX 8 组件时,我都必须在谷歌上搜索包的确切名称,然后手动输入 import packageName; 我会更详细地介绍。 假设我想创建一个 StackPane St
我想知道是否有人遇到相同的问题,所以我在Eclipse中打开gradle文件(版本:Mars.2发行版(4.5.2)),没有发现gradle语法的亮点。我从http://projects.eclips
我正在 MARS 中测试 MIPS 汇编程序,并希望指定一个文件在执行期间作为输入(有点像我可以通过使用以下 UNIX 命令重定向 stdin 来完成的操作): spim -file [filenam
Ctrl+Space 未显示建议。例如 sysout 或 arr。不管用。我尝试从“内容辅助”->“高级”恢复默认设置。 但是,我所做的更改不会保存,并且会恢复为首选项中的原始设置。以前有人遇到过
为什么Eclipse Mars CDT中strings的值没有出现在表达式或variables窗口中?它显示为 {...},但我想在值选项卡下查看值本身。 我该怎么做? 最佳答案 这里发生的事情是 C
我试图弄清楚平均排名 (MAR) 的平均值是多少在图建模中进行计算。有人可以看一下我的例子并告诉我我是否正确吗? 假设我们有两个如下所示的图表: 1-2, 3-4 1, 2, 3-4 在图 1 中,有
我正在使用 Eclipse Mars 编写 Java 代码。当我使用 Ctrl-/注释某些行,然后应用 Ctrl-Shift-F 对其进行格式化,然后取消注释这些行时,结果是两行代码,而不仅仅是原始代
为什么Eclipse Mars CDT中strings的值没有出现在表达式或variables窗口中?它显示为 {...},但我想在值选项卡下查看值本身。 我该怎么做? 最佳答案 这里发生的事情是 C
我不想使用制表符来缩进。所以我选中了“使用空格缩进”选项,但我无法设置空格的数量。加号和减号按钮不可点击,我无法手动编辑值,这意味着输入数字。仅缩进一个空格太少了。 我记得一些技巧,包括编辑工作区配置
typedef struct node { int data; struct node *next; } nodeL; 假设我想用 MIPS 汇编语言翻译上面的声明,
从头开始最后的编辑...它仍然无法正常工作,地址偏移量仍然以字节为单位,据我所知 >_< 我正在尝试用 C 编写我自己的任意精度整数运算的实现。为了高效地做到这一点,我需要使用内联汇编函数来访问进位标
我更新到 Eclipse Mars。现在,如果我将鼠标悬停在方法上,我会在黑色背景上看到黑色文本。在从 Luna 更新之前,我有黄色背景,黑色文本。如何为方法配置悬停?我在 Ubuntu 14.04.
我是一名优秀的程序员,十分优秀!