使用fitnesse和EF6,无法启动Effort.
我已经尝试了所有可以找到的帖子中的每一个技巧.
所有帖子都说要么叫’RegisterProvIDer’,要么添加一个配置部分.两者都不起作用.
至今:
我在machine.config的DbProvIDerFactorIEs部分中有“Effort.ProvIDer”.
当我看到DbProvIDerFactorIEs.GetFactoryClasses()时,我有Effort.ProvIDer出现;
ProcMon显示它正在寻找并找到Effort.dll.
结果:
任何
DbConnectionFactory.CreateTransIEnt(); Effort.EntityConnectionFactory.CreateTransIEnt(connectionString); DbProvIDerFactory dataFactory = DbProvIDerFactorIEs.GetFactory(dt.Rows[5]);
扔
Effort.Exceptions.EffortException: The Effort library Failed to register
还尝试过:
Runner.exe.config的entityFramework部分中的“Effort.ProvIDer”但无法使其工作.刚崩溃的应用程序.
卸载EF和Effort.EF6并重新安装.没有明显的效果.
调用Effort.ProvIDer.EffortProvIDerConfiguration.RegisterProvIDer();从类构造函数和各种启动位置. Effort.ProvIDer从未出现在DbProvIDerFactorIEs.GetFactoryClasses();
使用app.config中DbProvIDerFactorIEs部分中的“Effort.ProvIDer”,它显示在GetFactoryClasses中,与machine.config一样.
使用:
windows 10
.Net 4.6
VS 2016
EF 6.1.2(尽管安装了6.1.3,但不确定这意味着什么)
我是否需要注册DLL或其他内容?关于那个的说明中没有任何内容.
更多细节:
App.config中
<configuration> <runtime> <loadFromremoteSources enabled="true"/> </runtime> <system.data> <DbProvIDerFactorIEs> <add name="Effort.ProvIDer" invariant="Effort.ProvIDer" description="Effort.ProvIDer" type="Effort.ProvIDer.EffortProvIDerFactory,Effort" /> </DbProvIDerFactorIEs> </system.data></configuration>解决方法 看起来您需要在app.config文件中注册“entityFramework”配置部分.
<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> <provIDers> <provIDer invariantname="Effort.ProvIDer" type="Effort.ProvIDer.EffortProvIDerServices,Effort" /> </provIDers> </entityFramework>
然后在您的代码中创建Effort连接并将其传递给您的DbContext.如果您还没有构造函数接受System.Data.Common.DbConnection类型的对象,请创建一个.
System.Data.Common.DbConnection connection = DbConnectionFactory.CreateTransIEnt();var context = new MyContext(connection);
我还建议在app.config中设置connectionString.我相信对CreateTransIEnt的调用会为您创建一个连接,但如果您测试的代码具有在某处创建另一个dbContext的代码,Effort将查找app.config以获取该信息.下面是一个创建瞬态数据库的示例,以便在一次测试中完成的所有 *** 作不会影响另一个测试.
<add name="DefaultConnection" connectionString="Data Source=in-process;IsTransIEnt=true" provIDername="Effort.ProvIDer" />总结
以上是内存溢出为你收集整理的c# – 如何让Effort与EntityFramework一起使用?全部内容,希望文章能够帮你解决c# – 如何让Effort与EntityFramework一起使用?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)