2015-10-13 36 views
2

我在使用實體框架6.1.3的.NET 5.0 Web API項目時遇到問題。在這個項目中,我需要使用一些使用Entity framework 6.0.0的舊項目的一些.Dll引用。如果我沒有更新所有項目中的實體框架爲6.1.3版本,我得到了異常「無法加載文件或程序集」EntityFramework.SqlServer,Version = 6.0.0.0 ......「。請幫幫我!無法加載文件或程序集'EntityFramework.SqlServer,版本= 6.0.0.0

這是Project.json:

{ 
    "webroot": "wwwroot", 
    "version": "1.0.0-*", 

    "dependencies": { 
    "Microsoft.AspNet.Server.IIS": "1.0.0-beta6", 
"Microsoft.AspNet.Server.WebListener": "1.0.0-beta5", 
"EntityFramework": "6.1.3", 
"EntityFramework.SqlServer": "7.0.0-beta6", 
"EntityFramework.Commands": "7.0.0-beta6", 
"structuremap": "3.1.6.186", 
"Microsoft.AspNet.Mvc": "6.0.0-beta6", 
"Microsoft.AspNet.Diagnostics": "1.0.0-beta6", 
"Microsoft.Framework.Configuration.Json": "1.0.0-beta5", 
"System.ServiceModel.Duplex": "4.0.0-beta-23019", 
"System.ServiceModel.NetTcp": "4.0.0-beta-23019", 
"System.ServiceModel.Security": "4.0.0-beta-23019" 

}, 

"commands": { 
"web": "Microsoft.AspNet.Hosting --config hosting.ini", 
"ef": "EntityFramework.Commands" 
}, 

"frameworks": { 
"dnx451": { 
"dependencies": { 
"CuttingEdge.Conditions": "1.0.0-*", 
"Quartz": "1.0.0-*", 
"Project.Application": "1.0.0-*", 
"Project.Finance": "1.0.0-*", 
"Project.Infrastructure": "1.0.0-*", 
"Project.QuartzScheduler": "1.0.0-*", 
"Project.ServiceDesks": "1.0.0-*", 
"Project.Utilities": "1.0.0-*", 
"Project.WCFMock": "1.0.0-*" 
}, 
"frameworkAssemblies": { 
"System.ServiceModel": "4.0.0.0" 
} 
} 
}, 

"publishExclude": [ 
"node_modules", 
"bower_components", 
"**.xproj", 
"**.user", 
"**.vspscc" 
], 
"exclude": [ 
"wwwroot", 
"node_modules", 
"bower_components" 
] 
} 

我有更新的實體框架的舊項目是6.1.3版本,並安裝在App.config:

<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.1.3.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 

但以上例外仍然發生。請幫幫我!

這是完全錯誤:

Could not load file or assembly 'EntityFramework.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. A strongly-named assembly is required. (Exception from HRESULT: 0x80131044) 
+1

能否請您讓我們知道後會發生什麼'無法加載文件或程序集「EntityFramework.SqlServer,版本= 6.0.0.0'? –

+0

當我使用StructureMap從舊項目的Dll調用對象上下文時發生異常: _accountService = ObjectFactory.GetInstance (); –

+0

我的意思是:你能向我們展示完整的錯誤,而不是用'......'替換剩下的錯誤嗎? –

回答

0

你的問題是,你同時裝入EF6和EF7(你有你的project.json兩個版本)。您應該將EntityFramework.SqlServer降級到版本6,或將EntityFramework升級到版本7.

換句話說,要麼使用EF6或EF7,但不要混合來自不同版本的程序集。

"EntityFramework": "6.1.3", 
"EntityFramework.SqlServer": "7.0.0-beta6", 
"EntityFramework.Commands": "7.0.0-beta6", 
+0

請問我應該使用什麼版本的「EntityFramework.SqlServer」和「EntityFramework.Commands」。我只是從7.0.0-beta1到7.0.0-beta7。我正在使用7.0.0-beta6,因爲只有它支持使用此代碼的方法「.AddSqlServer()」: services.AddMvc(); var connectionString = Configuration.Get(「Data:BrokerageSimulatorEntities:ConnectionString」); ()。選項=> { options.UseSqlServer(connectionString); }); –

相關問題