gpt4 book ai didi

entity-framework - EF 5.0 枚举未生成

转载 作者:行者123 更新时间:2023-12-05 00:00:17 24 4
gpt4 key购买 nike

背景
我在安装了 .Net 4.5 的机器上使用 VS 2010,我读过它是就地安装(覆盖 .net 4.0 版本)。

我的项目仍然以 4.0 为目标,4.5 选项不可用,但被告知没问题,因为 4.5 是就地安装。然后我通过 nuget 安装了 EntityFramework -pre 并注意到当我运行 Upgrade-Database -Script 命令时,它不会生成枚举属性。

然后我找到了 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 中,您可以使用来自包管理器控制台的 Enable-Migrations 命令来添加迁移配置)。”

MyProject 确实有我上面提到的配置类,在包管理器控制台中,我为包含 Migrations 文件夹和此配置类的项目选择了正确的下拉列表。

问题
  • 即使我安装了 .Net 4.5,我该怎么做才能确保当我通过 nuget 安装 EnittyFramework 时它添加了 5.0 版本而不是 4.4?
  • 如果我不能做任何与上述问题相关的事情,我该怎么做才能确保升级数据库吐出一个脚本?
  • 最佳答案

    Entity Framework 5.0 尚未发布。有prereleases ,但您需要专门启用预发布才能让 NuGet 显示它们。

    但是,请记住,EF 5.0 不会像 .NET 4.5 那样支持 .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,并且枚举支持不在您从 NuGet 获得的 EntityFramework DLL 中,而是在 System.Data.Entity DLL 中,它是 .NET 运行时的一部分,因此无法将其添加到 .网络 4.0。您可以安装 Visual Studio Beta创建面向 .NET 4.5 的应用程序。

    简而言之:“被告知没问题,因为 4.5 是就地安装”——不,这不符合您的目的。

    关于entity-framework - EF 5.0 枚举未生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10489789/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com