背景 我在一台机器上使用VS 2010,我安装了.Net 4.5,我读过的是一个就地安装(覆盖.net 4.0版本)。EF 5.0枚举不生成
我有项目仍然针对4.0和4.5选项不可用,但被告知这是确定的,因为4.5是一个就地安装。然后,当我运行Upgrade-Database -Script命令时,我通过nuget和通知安装了EntityFramework -pre,它不会生成枚举属性。然后我发现this。我试过再次从零开始做所有事情,但它仍然添加EntityFramework 4.4而不是5.0。所以我手动将所有引用改为指向5.0版本以确保我有EF 5.0版本。全部编译。
问题 当我运行
Enable-Migrations -EnableAutomaticMigrations
我得到“无类,从的DbContext派生在当前项目中找到。 编辑生成的配置类来指定范围内,使迁移的。”
因此,我手动确保我的课程是正确的,如:
internal sealed class Configuration : DbMigrationsConfiguration<DataContext>
{
public Configuration()
{
AutomaticMigrationsEnabled = true;
}
DataContext子类DbContext。
当我运行
Update-Database -Script
我得到“没有迁移配置类型是在集中找到‘MyProject的’。(在Visual Studio中,您可以使用从包管理器控制台启用的迁移命令添加迁移配置)“
MyProject具有上面提到的配置类,并且在软件包管理器控制台中为我的项目包含Migrations文件夹和此配置类选择正确的下拉菜单。
问题
我该怎么办,以确保当我通过的NuGet安装EnittyFramework,它增加了5.0版本,而不是4.4,即使我已经安装了.NET 4.5?
如果我无法做任何与上述问题相关的事情,我该怎么做才能确保升级数据库能够吐出脚本?
欣赏评论。我遵循Scott Hanelman的博客文章,使用将.net框架重定向到4.5。你是说我应该升级到VS 11吗? –
TimJohnson
@gsogoly是的,.NET 4.5在VS 2010中不受支持。在Web应用程序中设置'targetFramework =“4.5”'意味着.NET 4.0开发的应用程序将在.NET 4.5上运行,但它仍然是.NET 4.0 - 开发的应用程序,并且实际上并没有获得.NET 4.5的任何好处(除了现有方法中可能的错误修复)。 – hvd
当它,我有Win2k8 R2 32位版本和VS11失败,因为它不是64位。是否真的没有其他方式来针对VS 10上的.net 4.5? – TimJohnson