背景 我在一台安装了.NET 4.5的机器上使用VS 2010,我读过.NET 4.5是一个原地安装(覆盖了.NET 4.0版本)。
我的项目仍然针对.NET 4.0,但是因为.NET 4.5是一个原地安装,所以没有4.5选项也没关系。然后我通过NuGet安装了EntityFramework-pre,但是当我运行Upgrade-Database -Script命令时,它不会生成枚举属性。
然后我发现了这个。我尝试从头开始做所有的事情,但仍然添加了EntityFramework 4.4而不是5.0。所以我手动更改了所有引用,使其指向5.0版本以确保我有EF 5.0版本。所有内容都已编译。
问题 当我运行
Enable-Migrations -EnableAutomaticMigrations
我得到了"在当前项目中未找到从DbContext派生的类。编辑生成的Configuration类以指定要启用迁移的上下文。"
因此,我手动确保我的类是正确的,如下所示:
internal sealed class Configuration : DbMigrationsConfiguration<DataContext>
{
public Configuration()
{
AutomaticMigrationsEnabled = true;
}
DataContext是DbContext的子类。
当我运行时,
Update-Database -Script
我遇到了“在程序集'MyProject'中找不到迁移配置类型。(在Visual Studio中,您可以使用Package Manager Console中的Enable-Migrations命令来添加迁移配置)”的问题。
我已经创建了包含上述配置类的MyProject,并在Package Manager Console中选择了包含Migrations文件夹和Configuration类的项目。 问题:
如何确保通过nuget安装EnittyFramework时添加的是5.0版本而不是4.4版本,即使我已安装.Net 4.5?
如果无法解决上述问题,我该如何确保Upgrade-Database输出脚本?
targetFramework="4.5"
意味着您的.NET 4.0开发的应用程序将在.NET 4.5上运行,但它仍然是一个.NET 4.0开发的应用程序,并且您实际上并没有获得任何.NET 4.5的好处(除了可能存在的现有方法的错误修复)。 - user743382