问题标签 [effort]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1412 浏览

c# - 努力抛出 InvalidOperationException:序列包含多个匹配元素

我通过创建连接并将其传递给 DB Context 以常规方式使用 Effort:

和这样的:

我所有的努力测试都通过了,除了一个抛出这个:

我在这些测试中使用了多个数据库上下文,除了这种情况外,它都可以工作:

事实上,在这个上下文上的任何操作Add都会抛出。

我在 Effort 网站上或通过谷歌搜索找不到任何有同样问题的人。也许这是一个错误?我正在使用最新版本的 Effort - 1.1.4 和 Entity Framework - 6.1.3。

我检查了有关 DbContext 或实体类的任何特殊情况,但没有找到任何东西。

0 投票
1 回答
5950 浏览

c# - 如何让 Effort 与 EntityFramework 一起工作?

概述
将 Fitnesse 与 EF6 一起使用,无法启动 Effort。我已经在我能找到的所有帖子中尝试了所有技巧。
所有帖子都说要么调用“RegisterProvider”,要么添加一个配置部分。两者都不起作用。

到目前为止:
我在 machine.config 的 DbProviderFactories 部分中有“Effort.Provider”。当我查看 DbProviderFactories.GetFactoryClasses(); 时出现了 Effort.Provider ProcMon 显示它正在寻找并找到 Effort.dll。

结果:
任何一个

还尝试过:
Runner.exe.config 的 entityFramework 部分中的“Effort.Provider”,但无法使其正常工作。刚刚崩溃了应用程序。
卸载 EF 和 Effort.EF6 并重新安装。无明显效果。
调用 Effort.Provider.EffortProviderConfiguration.RegisterProvider(); 从类构造函数和各种启动位置。Effort.Provider 从未出现在 DbProviderFactories.GetFactoryClasses();
通过 app.config 的 DbProviderFactories 部分中的“Effort.Provider”,它与 machine.config 一样显示在 GetFactoryClasses 中。

使用:
Windows 10
.Net 4.6
VS 2016
EF 6.1.2(虽然它说安装了 6.1.3,但不确定这意味着什么)

我需要注册一个DLL还是什么?说明中没有关于此的内容。

更多细节:
App.config

0 投票
0 回答
1717 浏览

c# - DbTransaction 和 DbContextTransaction 之间的区别?

当使用方法创建EntityFramework查询时,出现以下错误:DbContextTransactiondbContext.Database.BeginTransaction()

在 NMemory.Transactions.Transaction.EnsureTransaction(Transaction& transaction, IDatabase database) 在 NMemory.Tables.Table 2.Update(IQueryable1 查询,IUpdater 1 updater, Transaction transaction) at NMemory.Tables.Table2.NMemory.Tables.IBulkTable.Update(TableQuery 1 query, Expression1 updater, Transaction transaction) 在 NMemory.Linq.QueryableEx.Update [T](IQueryable 1 queryable, Expression1 更新程序,事务事务)在 Effort.Internal.Common.DatabaseReflectionHelper.WrapperMethods.UpdateEntities[TEntity](IQueryable 1 query, Expression1 更新程序,事务事务)

我在Effort GitHub 存储库上发现了一个类似错误的帖子(https://github.com/tamasflamich/effort/issues/29),它被修复,DbTransaction而是使用dbContext.Database.Connection.BeginTransaction()方法创建。我尝试DbTransaction改用它并且它有效,但现在我想知道这两者之间有什么区别?

0 投票
2 回答
345 浏览

entity-framework - 用于 Effort 单元测试的 Shim DbContext ctor

我想拦截var context = new MyDbContext()以返回不同的构造函数调用。

EFfort的伟大之处在于它可以让您为单元测试设置一个简单的内存数据库。

但是你必须将它注入context到你的存储库中。

是否有可能只是拦截var context = new MyDbContext(),以便它返回testContext

0 投票
3 回答
1338 浏览

c# - 在 Effort 中取消强制外键引用

我在 Visual Studio 和 C# 中使用 Effort 来重新创建和单元测试数据库。我正在为单个表编写一个类,因此我只使用该表中的对象填充数据库。我的问题是 Effort 数据库希望对象的外键引用数据库中的实际对象。

我的错误是

System.Data.Entity.Infrastructure.DbUpdateException:更新条目时出错。有关详细信息,请参阅内部异常。

System.Data.Entity.Core.UpdateException:更新条目时出错。有关详细信息,请参阅内部异常。

System.Reflection.TargetInvocationException:调用的目标已引发异常。

NMemory.Exceptions.ForeignKeyViolationException:外键违规 [Table1 :: SettingsId]。引用的表[Table2::SettingsId]中不存在键值[0]。错误代码:RelationError

由于这个特定的表有很多外键,对象有很多其他外键,所以需要做很多工作。Effort 有什么办法可以关闭它,以便我可以单独测试这张表?

0 投票
1 回答
1084 浏览

c# - Effort-FirstOrDefault 在伪造数据库时返回 null

我正在尝试为我的项目创建一些单元测试,经过大量挖掘后我发现 Effort,这个想法很棒,它模拟数据库而不是处理伪造 DBContext,顺便说一句,当使用复杂的模式。

但是,在我专门将其添加到 Effort 创建的内存数据库中后,我试图获取用户的电子邮件,这是代码

在上面的最后一行中,我无法返回电子邮件 xxxx@gmail.com,而是始终返回 null。

有任何想法吗?

0 投票
1 回答
264 浏览

entity-framework - 使用 Effort 的 XML 列

我使用 Effort 框架伪造了我的实体框架上下文。我正在使用 XML 类型的列来存储数据。显然 Effort 无法处理这个问题。我怎样才能解决这个问题?欢迎所有建议!

0 投票
1 回答
83 浏览

c# - 为什么自从添加 Effort.EF6 单元测试后我就不能再运行我的 C# MVC 网站了?

我的 C# MVC 网站使用 StructureMap 进行依赖注入。

我的 DbContext 的构造函数曾经如下所示。

现在我添加了 Effort.EF6 以进行单元测试,我不得不将我的 DbContext 构造函数更改为此。

虽然我现在可以对我的代码进行单元测试。我无法再运行该网站,因为 StructureMap 自更改后无法创建。

没有注册默认实例,并且无法为类型“System.Data.Common.DbConnection”自动确定

如何告诉 StructureMap 如何像以前一样初始化我的 DBContext,同时允许 Effort.EF6 也可以工作?

编辑 -

StructureMap在网站启动时启动如下...

网站启动时自动启动

0 投票
1 回答
374 浏览

entity-framework - ASP Boilerplate 问题在使用 EFProf(实体框架探查器)的单元测试中使用 Effort

将 EFProf ( http://www.hibernatingrhinos.com/products/EFProf ) 与 ASP Boilerplate ( http://www.aspnetboilerplate.com/ ) 一起使用时遇到问题。

对于单元测试,ASP Boilerplate 使用 Effort ( https://github.com/tamasflamich/effort ) 来模拟内存中的数据库。

如果我在不添加对 EFProf 的引用的情况下运行单元测试,则测试运行正确(绿色)。

如果我添加初始化行:

在我的测试基础 ctor 或我的应用程序项目的 Initialize() 中,我收到以下错误:

ComponentActivator:无法实例化 MyApp.EntityFramework.MyAppDataContext

内部异常有相关信息:

Error: Unable to cast object of type 'Effort.Provider.EffortConnection' to type 'HibernatingRhinos.Profiler.Appender.ProfiledDataAccess.ProfiledConnection'.

Effort 与 EFProf 不兼容吗?还是我在初始化时做了一些非常明显的错误?

0 投票
1 回答
411 浏览

c# - 带异步方法的 Effort 单元测试

我正在尝试为此设置单元测试。但是我看到的每个实际有效的例子都是这种类型的设置。它将以这种方式工作。

但是我的设置方式是这样的,而且我无法弄清楚如何在不破坏一切的情况下正确地做到这一点

那么如何在没有上下文属性和传递上下文的情况下测试这一点。因为从我读过的内容来看,我不能异步执行,因为 DBContext 不是线程安全的。但是我也不能用 Effort 测试它,除非我从 Effort 传递了正确的上下文。

不会工作,因为我在每个服务方法上都使用了 using。