one*_*mer 5 c# sql assemblies sql-server-ce entity-framework-4
Could not load System.Data.SqlServerCe.Entity.dll. Reinstall SQL Server Compact.
{"Could not load file or assembly 'System.Data.SqlServerCe.Entity, Version=4.0.0.1, Culture=neutral, PublicKeyToken=89845dcd8080cc91' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)":"System.Data.SqlServerCe.Entity, Version=4.0.0.1, Culture=neutral, PublicKeyToken=89845dcd8080cc91"}
创建新的MVC3应用程序
添加Nuget包EntityFramework.SqlServerCompact
<package id="EntityFramework.SqlServerCompact" version="4.1.8482.2" />
创建模型
public class TaskItem
{
[Key]
public int Id { get; set; }
public string Description { get; set; }
}
Run Code Online (Sandbox Code Playgroud)创建DbContext
public class TestContext : DbContext
{
public DbSet<TaskItem> TaskItems { get; set; }
}
Run Code Online (Sandbox Code Playgroud)家庭控制器
public ActionResult Index()
{
var db = new TestContext();
// breakpoint on Add() below
db.TaskItems.Add(new TaskItem { Description = "Get shit done."});
return View();
}
Run Code Online (Sandbox Code Playgroud)Web.config连接字符串和运行时以及System.Data
<add name="ApplicationServices" connectionString="Data Source=|DataDirectory|Test.sdf" providerName="System.Data.SqlServerCe.4.0" />
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<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>
</assemblyBinding>
</runtime>
<system.data>
<DbProviderFactories>
<remove invariant="System.Data.SqlServerCe.4.0" />
<add name="Microsoft SQL Server Compact Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
</DbProviderFactories>
</system.data>
Run Code Online (Sandbox Code Playgroud)Web.config都是默认的......这里没什么好玩的......所有的DLL都是本地复制和bin ...我错过了什么?它必须非常简单.
从web.config中删除Dependent Assembly部分解决了这个问题,但我仍然需要解释为什么要关闭答案.
从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>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5989 次 |
| 最近记录: |