2015-01-15 43 views
0

我們的項目正確基於DevForce 7.2.2 + EF5 + Oracle ODAC第2版。 自從Cristmas日以來,Oracle提供了新的ODAC版本3,該版本支持EF6,因此我們計劃將其遷移到EF6。 我安裝了新的ODAC驅動程序和EF6,添加了IdeaBlade.EntityModel.Edm.EF6併成功編譯了項目。 但是,當我試圖刪除edmx.tt文件並再次保存EDMX,錯誤說:DevForce 7.2.2是否支持EF6 + Oracle ODAC Release 3驅動程序?

運行轉換:System.Exception的:無法從文件加載MetadataWorkspace: C:\人力資源管理\分支機構\工作\ Client \ trunk \ william_EF6 \ Source \ Infor.HRCM.BusinessObjectEF \ HRCMModel.edmx 這可能是由於在加載過程中遇到驗證錯誤; 請檢查EDMX驗證錯誤。 未找到具有不變名稱「Oracle.DataAccess.Client」的ADO.NET提供程序的實體框架提供程序。 確保提供程序在應用程序配置文件的'entityFramework'部分註冊。 有關更多信息,請參閱http://go.microsoft.com/fwlink/?LinkId=260882。 在IdeaBlade.VisualStudio.OM.CodeGenerator.Metadata.EdmxWrapper.ThrowException(字符串edmxFileName,IEnumerable的錯誤) 在IdeaBlade.VisualStudio.OM.CodeGenerator.BaseDomainModelTemplate.Generate() 在Microsoft.VisualStudio.TextTemplatingF6DEE480DF7B4F94A3D12E403704A2572EB9DB1E939B6073E8F11C8E668FEEA7B6005FF1359D9D2F5838491689A816AF3A6016F8F44D717349E05C0127639B54.GeneratedTextTransformation。在c:\ HRM \ branches \ work \ Client \ trunk \ william_EF6 \ Source \ Infor.HRCM.BusinessObjectEF \ HRCMModel.edmx.tt:第9行c:\ HRM \ branches \ work \ Client \ trunk \ william_EF6 \ TransformText Source \ Infor.HRCM.BusinessObjectEF \ HRCMModel.edmx.tt 9 1 Infor.HRCM.BusinessObjectEF

我創建d新演示沒有DevForce(僅EF6 + ODAC驅動程序),它的工作原理。 以下是我的應用程序配置:

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <configSections> 
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> 
    </configSections> 
    <connectionStrings> 
    <add name="HRCMContext" connectionString="metadata=res://*/HRCMModel.csdl|res://*/HRCMModel.ssdl|res://*/HRCMModel.msl;provider=Oracle.DataAccess.Client;provider connection string=&quot;data source=DEV12;password=hrm_trunk;persist security info=True;user id=HRM_TRUNK&quot;" providerName="System.Data.EntityClient" /> 
    </connectionStrings> 
    <oracle.unmanageddataaccess.client> 
    <version number="*"> 
     <edmMappings> 
     <edmNumberMapping> 
      <add NETType="decimal" MinPrecision="1" MaxPrecision="19" DBType="Number" /> 
     </edmNumberMapping> 
     </edmMappings> 
    </version> 
    </oracle.unmanageddataaccess.client> 
    <entityFramework> 
    <providers> 
     <provider invariantName="Oracle.DataAccess.Client" type="Oracle.DataAccess.EntityFramework.EFOracleProviderServices, 
       Oracle.DataAccess.EntityFramework,Version=6.121.2.0, 
       Culture=neutral, PublicKeyToken=89b483f429c47342" /> 
    </providers> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" /> 
    </entityFramework> 
</configuration> 
+0

我們還有其他關於Oracle和EF6問題的報告,並正在研究它們。您可以直接聯繫IdeaBlade支持以獲取更多信息。 –

回答

0

EF6似乎加載/解決不同信息的app.config比在EF5一樣,造成在設計時的DevForce問題。 EF6中的DevForce代碼生成目前無法使用項目配置文件中的信息,因此您的配置中的entityFramework信息未找到。

現在可以通過將entityFramework信息(包括configSection條目)添加到與devenv.exe位於同一文件夾中的devenv.exe.config文件來解決此問題。

我們希望在下一個DevForce版本中有一個解決方案。

+0

NuGet提供的7.2.6版本中解決了此問題。 –