询问者
EFProviderWrapperToolkit 在EntityFramework 5.0 下无法使用

问题
-
为了调试方便,在程序中加入了 EFProviderWrapperToolkit ,
在EntityFramework 4.0的使用使用正常,但是后来升级到 EntityFramework 5.0的时候,调试一直报错,
我在DataEntities中增加了:
public dataEntities(DbConnection dbConnection) : base(dbConnection,true) { }
然后新增了一个类继承dataEntities:
public partial class PERPData:dataEntities,IDisposable { public PERPData() :this("name=dataEntities") { } public PERPData(string connString) : base((System.Data.Common.DbConnection)EntityConnectionWrapperUtils.CreateEntityConnectionWithWrappers(connString, "EFTracingProvider")) { } void IDisposable.Dispose() { this.Dispose(); GC.SuppressFinalize(this); } }
然而在调试这个程序的时候.会报错:
找不到或无法加载已注册的 .Net Framework Data Provider。
EFProviderWrapperToolkit.CreateWrappedMetadataWorkspace中的
StoreItemCollection sic = new StoreItemCollection(ssdl.Select(c => c.CreateReader()));
这一行报错:提示的异常信息如下:
用户代码未处理 System.Configuration.ConfigurationErrorsException HResult=-2146232062 Message=找不到或无法加载已注册的 .Net Framework Data Provider。 Source=System.Data BareMessage=找不到或无法加载已注册的 .Net Framework Data Provider。 Line=0 StackTrace: 在 System.Data.Common.DbProviderFactories.GetFactory(DataRow providerRow) 在 System.Data.Common.DbProviderFactories.GetFactory(String providerInvariantName) 在 System.Data.Common.DbProviderServices.GetProviderFactory(String providerInvariantName) 在 System.Data.Metadata.Edm.StoreItemCollection.Loader.InitializeProviderManifest(Action`3 addError) 在 System.Data.Metadata.Edm.StoreItemCollection.Loader.OnProviderManifestTokenNotification(String token, Action`3 addError) 在 System.Data.EntityModel.SchemaObjectModel.Schema.HandleProviderManifestTokenAttribute(XmlReader reader) 在 System.Data.EntityModel.SchemaObjectModel.Schema.HandleAttribute(XmlReader reader) 在 System.Data.EntityModel.SchemaObjectModel.SchemaElement.ParseAttribute(XmlReader reader) 在 System.Data.EntityModel.SchemaObjectModel.SchemaElement.Parse(XmlReader reader) 在 System.Data.EntityModel.SchemaObjectModel.Schema.HandleTopLevelSchemaElement(XmlReader reader) 在 System.Data.EntityModel.SchemaObjectModel.Schema.InternalParse(XmlReader sourceReader, String sourceLocation) 在 System.Data.EntityModel.SchemaObjectModel.Schema.Parse(XmlReader sourceReader, String sourceLocation) 在 System.Data.EntityModel.SchemaObjectModel.SchemaManager.ParseAndValidate(IEnumerable`1 xmlReaders, IEnumerable`1 sourceFilePaths, SchemaDataModelOption dataModel, AttributeValueNotification providerNotification, AttributeValueNotification providerManifestTokenNotification, ProviderManifestNeeded providerManifestNeeded, IList`1& schemaCollection) 在 System.Data.Metadata.Edm.StoreItemCollection.Loader.LoadItems(IEnumerable`1 xmlReaders, IEnumerable`1 sourceFilePaths) 在 System.Data.Metadata.Edm.StoreItemCollection.Init(IEnumerable`1 xmlReaders, IEnumerable`1 filePaths, Boolean throwOnError, DbProviderManifest& providerManifest, DbProviderFactory& providerFactory, String& providerManifestToken, Memoizer`2& cachedCTypeFunction) 在 System.Data.Metadata.Edm.StoreItemCollection..ctor(IEnumerable`1 xmlReaders) 在 EFProviderWrapperToolkit.EntityConnectionWrapperUtils.CreateWrappedMetadataWorkspace(String metadata, IEnumerable`1 wrapperProviderNames) 在 EFProviderWrapperToolkit.EntityConnectionWrapperUtils.CreateEntityConnectionWithWrappers(String entityConnectionString, String[] wrapperProviders) 在 PERP.DAL.PERPData..ctor(String connString) 位置 e:\Personal\Project\PERP\PERP.DAL\PERPData.cs:行号 28 在 PERP.DAL.PERPData..ctor() 位置 e:\Personal\Project\PERP\PERP.DAL\PERPData.cs:行号 21 在 PERP.BLL.Account.UserInfo.Login(String username, String password) 位置 e:\Personal\Project\PERP\PERP.BLL\Account\UserInfo.cs:行号 23 在 PERP.Web.Controllers.HomeController.Index() 位置 e:\Personal\Project\PERP\PERP.Web\Controllers\HomeController.cs:行号 14 在 lambda_method(Closure , ControllerBase , Object[] ) 在 System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters) 在 System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) 在 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) 在 System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass42.<BeginInvokeSynchronousActionMethod>b__41() 在 System.Web.Mvc.Async.AsyncResultWrapper.<>c__DisplayClass8`1.<BeginSynchronous>b__7(IAsyncResult _) 在 System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`1.End() 在 System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult) 在 System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass37.<>c__DisplayClass39.<BeginInvokeActionMethodWithFilters>b__33() 在 System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass4f.<InvokeActionMethodFilterAsynchronously>b__49() InnerException:
大家有在EF5.0上用EFProviderWrapper 的吗?
不知道我遇到的这个问题有没有人遇到?
怎么解决?