Tim*_*son 4 entity-framework ef-migrations entity-framework-5
背景 我在我安装.Net 4.5的机器上使用VS 2010,我读过这是一个就地安装(覆盖了.net 4.0版本).
我的项目仍然针对4.0和4.5选项不可用,但被告知它没关系,因为4.5是就地安装.然后,当我运行Upgrade-Database -Script命令时,我通过nuget和通知安装了EntityFramework -pre,它不会生成枚举属性.
然后我找到了这个.我尝试从头再做一切,但它仍然添加EntityFramework 4.4而不是5.0.所以我手动更改所有引用指向5.0版本以确保我有EF 5.0版本.全部编译.
问题 我跑的时候
Enable-Migrations -EnableAutomaticMigrations
Run Code Online (Sandbox Code Playgroud)
我得到" 没有从当前项目中找到的DbContext派生的类.编辑生成的Configuration类以指定启用迁移的上下文. "
所以我手动确保我的班级是正确的,如:
internal sealed class Configuration : DbMigrationsConfiguration<DataContext>
{
public Configuration()
{
AutomaticMigrationsEnabled = true;
}
Run Code Online (Sandbox Code Playgroud)
DataContext子类DbContext.
我跑的时候
Update-Database -Script
Run Code Online (Sandbox Code Playgroud)
我得到" 在程序集'MyProject'中找不到迁移配置类型.(在Visual Studio中,您可以使用Package Manager控制台中的Enable-Migrations命令添加迁移配置). "
MyProject确实有我上面提到的配置类,在Package Manager Console中我选择了包含Migrations文件夹和此Configuration类的项目的右下拉列表.
题
我该怎么做以确保当我通过nuget安装EnittyFramework它添加5.0版本而不是4.4时,即使我安装了.Net 4.5?
如果我无法执行与上述问题相关的任何操作,我该怎么做才能确保Upgrade-Database吐出脚本?
小智 7
实体框架5.0还没有出来.有预发布,但您需要专门启用预发布,以便NuGet显示它们.
但是,请记住,EF 5.0不会支持.NET 4.0中的所有内容.是的,.NET 4.5会覆盖.NET 4.0,但如果您的项目在VS2010中,它将被配置为为.NET 4.0构建,而不是.NET 4.5.它不能假设.NET 4.5功能,因为结果需要在没有.NET 4.5的系统上运行.毕竟,你的目标是.NET 4.0,并且enum支持不在你从NuGet获得的EntityFramework DLL中,它位于System.Data.Entity DLL中,它是.NET运行时的一部分,因此无法添加. NET 4.0.您可以安装Visual Studio Beta来创建面向.NET 4.5的应用程序.
简而言之:"有人告诉它可以,因为4.5是就地安装" - 不,它不适合你的目的.