小编Len*_*lan的帖子

无法在使用Effort框架的单元测试中使用现有数据库

我正在尝试使用Azure SQL中托管的数据库和Entity Framework 6上的Effort框架编写测试.

执行以下代码时,抛出异常:

[ClassInitialize]
public static void ClassInitialize(TestContext context)
{
    EffortProviderConfiguration.RegisterProvider();
}

[TestMethod]
public void TestMethod1()
{
    const string connectionString = "Data Source=***;Initial Catalog=my_catalog;User ID=user;Password=password;provider=System.Data.SqlClient";
    IDataLoader loader = new EntityDataLoader(connectionString);
    using (var ctx = new UsersDbContext(Effort.DbConnectionFactory.CreatePersistent("cool", loader)))
    {
        var usersCount = ctx.Users.Count();
    }
}
Run Code Online (Sandbox Code Playgroud)

Count()执行中抛出异常:

Effort.Exceptions.EffortException:尝试初始化'Table'表的内容时出现未处理的异常---> System.ArgumentException:不支持关键字:'data source'.

EffortProviderConfiguration.RegisterProvider()使用app.config设置替换时会抛出相同的异常.

当使用完全相同的连接字符串创建UsersDbContext它时,它成功并且可以访问数据.此外,使用Effort持久或临时模式创建上下文,没有连接字符串,也可以很好地工作.

如何使用真实数据库中的现有数据初始化连接?

c# unit-testing entity-framework entity-framework-6 effort

12
推荐指数
2
解决办法
5197
查看次数