C# 在实体框架4.3中使用SQL Server Compact 4.0.0.1 错误:
C# 在实体框架4.3中使用SQL Server Compact 4.0.0.1 错误:,c#,sql,entity-framework-4,assemblies,sql-server-ce,C#,Sql,Entity Framework 4,Assemblies,Sql Server Ce,无法加载System.Data.SqlServerCe.Entity.dll。重新安装SQL Server Compact。 内部异常: {“无法加载文件或程序集'System.Data.SqlServerCe.Entity,Version=4.0.0.1,Culture=neutral,PublicKeyToken=89845dcd8080cc91'或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(HRESULT的异常:0x8013100)”:“System.Data.SqlServ
无法加载System.Data.SqlServerCe.Entity.dll。重新安装SQL Server Compact。
内部异常:
{“无法加载文件或程序集'System.Data.SqlServerCe.Entity,Version=4.0.0.1,Culture=neutral,PublicKeyToken=89845dcd8080cc91'或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(HRESULT的异常:0x8013100)”:“System.Data.SqlServerCe.Entity,Version=4.0.0.1,Culture=neutral,PublicKeyToken=89845dcd8080cc91”}
复制步骤:
public class TaskItem
{
[Key]
public int Id { get; set; }
public string Description { get; set; }
}
public class TestContext : DbContext
{
public DbSet<TaskItem> TaskItems { get; set; }
}
更新:
从web.config中删除依赖程序集部分解决了问题,但我仍然需要解释为什么要关闭答案。检查此代码是否在您的项目中创建
EntityFramework.SqlServerCompact.cs under the App_Start folder
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
[assembly: WebActivator.PreApplicationStartMethod(typeof(MyStory.Tests.App_Start.EntityFramework_SqlServerCompact), "Start")]
namespace MyStory.Tests.App_Start {
public static class EntityFramework_SqlServerCompact {
public static void Start() {
Database.DefaultConnectionFactory = new SqlCeConnectionFactory("System.Data.SqlServerCe.4.0");
}
}
}
从web.config中删除依赖程序集绑定
<dependentAssembly>
<assemblyIdentity name="System.Data.SqlServerCe" publicKeyToken="89845dcd8080cc91" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.0.1" newVersion="4.0.0.1" />
</dependentAssembly>
在我的例子中,我找不到“System.Data.SqlServerCe”的dependentAssembly元素“在我的web.config中,删除它们并重试如何?我遇到了类似的问题。4.0.0.1确实存在,但我一直得到与OP相同的错误,直到我删除了绑定重定向。Kori,我删除了相同的部分,它似乎也使崩溃消失。我想知道为什么在我标记一个答案之前,因为这是一个普通的开箱即用的安装。如果你能找到一个明确的答案,我就把你的支票扔了。同时+1表示修复。
EntityFramework.SqlServerCompact.cs under the App_Start folder
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
[assembly: WebActivator.PreApplicationStartMethod(typeof(MyStory.Tests.App_Start.EntityFramework_SqlServerCompact), "Start")]
namespace MyStory.Tests.App_Start {
public static class EntityFramework_SqlServerCompact {
public static void Start() {
Database.DefaultConnectionFactory = new SqlCeConnectionFactory("System.Data.SqlServerCe.4.0");
}
}
}
<dependentAssembly>
<assemblyIdentity name="System.Data.SqlServerCe" publicKeyToken="89845dcd8080cc91" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.0.1" newVersion="4.0.0.1" />
</dependentAssembly>