Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.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
Entity framework 代码优先迁移丢失ManifestResourceException_Entity Framework_Entity Framework 5_Entity Framework Migrations - Fatal编程技术网

Entity framework 代码优先迁移丢失ManifestResourceException

Entity framework 代码优先迁移丢失ManifestResourceException,entity-framework,entity-framework-5,entity-framework-migrations,Entity Framework,Entity Framework 5,Entity Framework Migrations,我目前正在为新数据库创建InitialCreate迁移。我是这个迁移框架的新手,不知道它到底生成了什么,我一直在运行updatedatabase以查看结果,删除数据库,然后在进行一些更改以查看结果后再次运行updatedatabase 现在我两次做了一些更改,去运行更新,并得到如下错误: 应用基于代码的迁移:201209121936571_InitialCreate。 System.Resources.MissingManifestResourceException:找不到任何适合指定区域性或非

我目前正在为新数据库创建InitialCreate迁移。我是这个迁移框架的新手,不知道它到底生成了什么,我一直在运行
updatedatabase
以查看结果,删除数据库,然后在进行一些更改以查看结果后再次运行
updatedatabase

现在我两次做了一些更改,去运行更新,并得到如下错误:

应用基于代码的迁移:201209121936571_InitialCreate。 System.Resources.MissingManifestResourceException:找不到任何适合指定区域性或非特定区域性的资源。确保在编译时将“$assemblyName$.resources”正确嵌入或链接到程序集“$assemblyName$”中,或者确保所需的所有附属程序集都是可加载和完全签名的。 在[StackTrace]

然后它以红色结尾,带有

找不到任何适合指定区域性或非特定区域性的资源。确保在编译时将“$assemblyName$.Migrations.InitialCreate.resources”正确嵌入或链接到程序集“$assemblyName$”中,或者确保所需的所有附属程序集都是可加载和完全签名的

第一次遇到这种情况时,我删除了迁移文件夹,运行了
启用迁移
重新进行了更改,并能够运行迁移


它又发生了,我不想每次都重新创建文件。有人知道如何纠正这一点以使迁移再次工作吗?

我在收集我想问这个问题的所有信息的过程中最终找到了这一点。也就是说,试图重现这个问题

事实证明,如果文件中的第一个类不是DbMigration的继承者,而是其他类,那么资源文件将使用另一个类的名称,而不是中断迁移的迁移


我已经提交了一份bug报告。

对我来说,解决方案是在我的投影的.csproj文件中添加以下代码,在

true

“更新数据库”命令运行良好。

我遇到了实体迁移、实体6.4以及完整.Net Framework中的Microsoft.Net.SDK样式项目的问题

我通过以下方式编辑我的数据项目解决了此问题:

  <ItemGroup>
    <EmbeddedResource Update="**\*.resx">
      <DependentUpon>$([System.String]::Copy('%(FileName)')).cs</DependentUpon>
    </EmbeddedResource>
  </ItemGroup>

$([System.String]::复制('%(文件名)')).cs

参考此线程,它解决了我的问题+1,将带有EF的项目从.NET framework迁移到.NET Standard 2.1后,我们出现了此错误。这是github@kurdemol94上的原版,给这篇评论的作者一个好主意。干得好遗憾的是,8年后,这个基本问题仍然没有被工具集正确解决。我们在一个SDK风格的项目中也遇到了这个问题,该项目的目标是使用EF 6.4.0的net471(不是EF Core)。这似乎与目标无关。相反,它取决于项目文件的格式。
  <ItemGroup>
    <EmbeddedResource Update="**\*.resx">
      <DependentUpon>$([System.String]::Copy('%(FileName)')).cs</DependentUpon>
    </EmbeddedResource>
  </ItemGroup>