问题标签 [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.
c# - 努力抛出 InvalidOperationException:序列包含多个匹配元素
我通过创建连接并将其传递给 DB Context 以常规方式使用 Effort:
和这样的:
我所有的努力测试都通过了,除了一个抛出这个:
我在这些测试中使用了多个数据库上下文,除了这种情况外,它都可以工作:
事实上,在这个上下文上的任何操作Add
都会抛出。
我在 Effort 网站上或通过谷歌搜索找不到任何有同样问题的人。也许这是一个错误?我正在使用最新版本的 Effort - 1.1.4 和 Entity Framework - 6.1.3。
我检查了有关 DbContext 或实体类的任何特殊情况,但没有找到任何东西。
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
c# - DbTransaction 和 DbContextTransaction 之间的区别?
当使用方法创建EntityFramework
查询时,出现以下错误:DbContextTransaction
dbContext.Database.BeginTransaction()
在 NMemory.Transactions.Transaction.EnsureTransaction(Transaction& transaction, IDatabase database) 在 NMemory.Tables.Table
2.Update(IQueryable
1 查询,IUpdater1 updater, Transaction transaction) at NMemory.Tables.Table
2.NMemory.Tables.IBulkTable.Update(TableQuery1 query, Expression
1 updater, Transaction transaction) 在 NMemory.Linq.QueryableEx.Update [T](IQueryable1 queryable, Expression
1 更新程序,事务事务)在 Effort.Internal.Common.DatabaseReflectionHelper.WrapperMethods.UpdateEntities[TEntity](IQueryable1 query, Expression
1 更新程序,事务事务)
我在Effort GitHub 存储库上发现了一个类似错误的帖子(https://github.com/tamasflamich/effort/issues/29),它被修复,DbTransaction
而是使用dbContext.Database.Connection.BeginTransaction()
方法创建。我尝试DbTransaction
改用它并且它有效,但现在我想知道这两者之间有什么区别?
entity-framework - 用于 Effort 单元测试的 Shim DbContext ctor
我想拦截var context = new MyDbContext()
以返回不同的构造函数调用。
EFfort的伟大之处在于它可以让您为单元测试设置一个简单的内存数据库。
但是你必须将它注入context
到你的存储库中。
是否有可能只是拦截var context = new MyDbContext()
,以便它返回testContext
?
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 有什么办法可以关闭它,以便我可以单独测试这张表?
c# - Effort-FirstOrDefault 在伪造数据库时返回 null
我正在尝试为我的项目创建一些单元测试,经过大量挖掘后我发现 Effort,这个想法很棒,它模拟数据库而不是处理伪造 DBContext,顺便说一句,当使用复杂的模式。
但是,在我专门将其添加到 Effort 创建的内存数据库中后,我试图获取用户的电子邮件,这是代码
在上面的最后一行中,我无法返回电子邮件 xxxx@gmail.com,而是始终返回 null。
有任何想法吗?
entity-framework - 使用 Effort 的 XML 列
我使用 Effort 框架伪造了我的实体框架上下文。我正在使用 XML 类型的列来存储数据。显然 Effort 无法处理这个问题。我怎样才能解决这个问题?欢迎所有建议!
c# - 为什么自从添加 Effort.EF6 单元测试后我就不能再运行我的 C# MVC 网站了?
我的 C# MVC 网站使用 StructureMap 进行依赖注入。
我的 DbContext 的构造函数曾经如下所示。
现在我添加了 Effort.EF6 以进行单元测试,我不得不将我的 DbContext 构造函数更改为此。
虽然我现在可以对我的代码进行单元测试。我无法再运行该网站,因为 StructureMap 自更改后无法创建。
没有注册默认实例,并且无法为类型“System.Data.Common.DbConnection”自动确定
如何告诉 StructureMap 如何像以前一样初始化我的 DBContext,同时允许 Effort.EF6 也可以工作?
编辑 -
StructureMap在网站启动时启动如下...
网站启动时自动启动
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 不兼容吗?还是我在初始化时做了一些非常明显的错误?
c# - 带异步方法的 Effort 单元测试
我正在尝试为此设置单元测试。但是我看到的每个实际有效的例子都是这种类型的设置。它将以这种方式工作。
但是我的设置方式是这样的,而且我无法弄清楚如何在不破坏一切的情况下正确地做到这一点
那么如何在没有上下文属性和传递上下文的情况下测试这一点。因为从我读过的内容来看,我不能异步执行,因为 DBContext 不是线程安全的。但是我也不能用 Effort 测试它,除非我从 Effort 传递了正确的上下文。
不会工作,因为我在每个服务方法上都使用了 using。