我在本地计算机上安装了EF4.3.1。
我创建了一个新的Web应用程序项目并添加了框架。然后我创建了一个数据库/模型等。框架分为2个项目1个DAL,1个实体。在我的本地机器上,我只限于SQL Express 2008。
以下是来自web config的配置部分:
<configSections>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.3.1.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</configSections>
这是我使用的连接字符串:
<add name="PayDayLoanEntities" connectionString="metadata=res://*/Models.PayDayLoans.csdl|res://*/Models.PayDayLoans.ssdl|res://*/Models.PayDayLoans.msl;provider=System.Data.SqlClient;provider connection string='data source=.\SQLEXPRESS;attachdbfilename="C:\Documents and Settings\John\My Documents\Visual Studio 2010\Projects\IL\WebSite\App_Data\PayDayLoans.mdf";integrated security=True;connect timeout=30;user instance=True;multipleactiveresultsets=True;App=EntityFramework'" providerName="System.Data.EntityClient" />
这一切都有效!
在我的生产机器上,我使用SQL 2008网络版,因此更改了连接字符串,如下所示:
<add name="PayDayLoanEntities" connectionString="metadata=res://*/Models.PayDayLoans.csdl|res://*/Models.PayDayLoans.ssdl|res://*/Models.PayDayLoans.msl;provider=System.Data.SqlClient;provider connection string='Data Source=localhost;Initial Catalog=PayDayLoans;uid=***;pwd=********";integrated security=True;connect timeout=30;user instance=True;multipleactiveresultsets=True;App=EntityFramework'" providerName="System.Data.EntityClient" />
但是,我收到以下错误消息:
Could not load file or assembly 'EntityFramework, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
config部分引用4.3.1但错误4.1.0。有人知道我在这里缺少什么吗?
任何帮助表示感谢。
答案 0 :(得分:0)
当为RELEASE构建时,解决方案中的某些内容很可能会引用EF 4.1.0。也许你有一个没有正确更新的构建服务器?
在生产计算机上运行Fuslogvw(以管理员身份或将无声地失败)。在启动Web应用程序之前开始记录绑定失败。 Fuslogvw会告诉你究竟试图绑定EF 4.1.0的内容。