- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
出于集成测试目的,我想在测试夹具设置中手动创建并打开 EntityConnection。调用 Open() 方法时失败并出现以下异常:
System.Data.ProviderIncompatibleException:在类型为“System.Data.SQLite.EF6.SQLiteProviderFactory”的商店提供程序实例上调用“GetService”方法后返回 null。商店提供商可能无法正常运行。
我使用的是与 EF 处理连接打开时使用的相同的连接字符串。如果我运行相同的测试套件并由 EF 自动处理连接,它就可以工作。
...
[TestFixtureSetUp]
public void FixtureSetUp()
{
// Setup database
// Setup data access
...
var ec = new EntityConnection([ConnectionString]);
ec.StoreConnection.Open(); --> WORKS!!
ec.Open(); -> Throws
}
...
连接字符串如下所示:
metadata=res://*/Test.TestModel.csdl|res://*/Test.TestModel.ssdl|res://*/Test.TestModel.msl;provider=System.Data.SQLite;provider connection string="data source=C:\Test\tmp4C80.tmp;read only=False;pooling=False;failifmissing=True;synchronous=Full;datetimekind=Utc;enlist=True;setdefaults=False;datetimeformat=ISO8601;journal mode=Off;cache size=4194304"
NUnit 程序集的 app.config 如下
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="entityFramework"
type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
requirePermission="false" />
</configSections>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
<providers>
<provider invariantName="System.Data.SqlClient"
type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
<provider invariantName="System.Data.SQLite"
type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6" />
</providers>
</entityFramework>
<!-- Register protable database data providers -->
<system.data>
<DbProviderFactories>
<remove invariant="System.Data.SQLite" />
<add name="SQLite Data Provider" invariant="System.Data.SQLite"
description=".Net Framework Data Provider for SQLite"
type="System.Data.SQLite.EF6.SQLiteProviderFactory, System.Data.SQLite.EF6, Version=1.0.94.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" />
</DbProviderFactories>
</system.data>
</configuration>
除了用于测试的 NUnit,我还使用 Entity Framework 6.1.1 和 System.Data.SQLite 1.0.94.0。
编辑:奇怪的是,手动打开提供的实体连接的商店连接是有效的...
最佳答案
我发现我使用了 System.Data.Entity 中的 EntityConnection 而不是 EntityFramework 程序集。
关于c# - 手动打开到 SQLite 数据库的 EntityConnection 会导致 ProviderIncompatibleException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26144046/
我有一个关于 EntityFramework with CodeFirst 方法的问题。基于 EntityConnection 源代码和文档,我无法使用已打开的 SqlConnection 创建它。它
关于管理 EntityContext 生命周期有很多问题, 例如Instantiating a context in LINQ to Entities 我得出的结论是,实体上下文应被视为一个工作单元,
“EntityConnection 只能用关闭的 DbConnection 构造”这是我在尝试构建提供开放连接的实体连接时遇到的问题。有一个 transactionscope 打开,我不想打开一个新连
我有一个使用 EF CTP5 的应用。 在这种特殊情况下,我需要降级到一些经典的 ADO.NET(以便在存储过程中读取多个结果集,这是 EF 不支持的)。 因此,我尝试使用 EntityConnect
例如: SqlConnection connection = new SqlConnection(efContext.Connection...?) connection.Open(); etc..
出于集成测试目的,我想在测试夹具设置中手动创建并打开 EntityConnection。调用 Open() 方法时失败并出现以下异常: System.Data.ProviderIncompatible
创建 EF4 EntityConnection 的成本如何?我正在使用 SQL Compact 创建一个 EF4 桌面应用程序,用户将能够使用“文件打开”对话框打开数据库文件。然后我的代码构建一个 E
我在使用 EntityConnection 时收到此错误,我不知道如何解决。使用 ObjectContext 时,我可以设置属性 DefaultContainerName 并且它可以工作,但现在我不知
(这曾经是一个由两部分组成的问题,但由于第二部分确实很重要,所以我决定将其分成两个单独的帖子。请参阅 Using Serialization to copy entities between two
我的大部分数据库操作都使用 Linq2Entity。然而,对于数据库创建、表创建和初始数据插入,我使用纯 SQL 文件。因此我需要一个 SqlConnection 和一个 EntityConnecti
我是一名优秀的程序员,十分优秀!