Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在实体框架4.3中使用SQL Server Compact 4.0.0.1 错误:_C#_Sql_Entity Framework 4_Assemblies_Sql Server Ce - Fatal编程技术网

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”}

复制步骤:
  • 创建新的MVC3应用程序

  • 添加Nuget包EntityFramework.SqlServerCompact

  • 创建模型

    public class TaskItem
    {
        [Key]
        public int Id { get; set; }
        public string Description { get; set; }
    }
    
  • 创建DbContext

    public class TestContext : DbContext
    {
        public DbSet<TaskItem> TaskItems { get; set; }
    }
    
  • Web.config连接字符串以及运行时和System.Data

    
    
  • 问题: Web.config都是默认的…这里没有什么奇怪的东西…所有的DLL都是本地复制的,都在bin中…我缺少什么?一定很简单


    更新:
    从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>