none
EFProviderWrapperToolkit 在EntityFramework 5.0 下无法使用 RRS feed

  • 问题

  • 为了调试方便,在程序中加入了 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 的吗?

    不知道我遇到的这个问题有没有人遇到?

    怎么解决?

    2012年11月22日 7:38