gpt4 book ai didi

entity-framework - Entity Framework 5.0 RC - 包管理器命令 'add-migration' 因据称缺少配置类型而失败

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

使用 Entity Framework 5.0.0 RC/EF 5.x DbContext Generator for C#/Visual Studio 2012 RC/.NET 4.0,我试图在我的项目中启用自动迁移。我跑了 enable-migrations在包管理器控制台中:

PM> enable-migrations
No classes deriving from DbContext found in the current project.
Edit the generated Configuration class to specify the context to enable migrations for.
Code First Migrations enabled for project Test.

如您所见,它没有自动检测我的 DbContext 派生类型,但是我通过在生成的代码文件中输入此类型的名称来轻松解决这个问题, Migrations/Configuration.cs .

但是,下一步,包管理器控制台命令 enable-migrations由于找不到上一步添加的迁移配置类型而失败。
PM> add-migration Initial
No migrations configuration type was found in the assembly 'Test'. (In Visual Studio you can use the Enable-Migrations command from Package Manager Console to add a migrations configuration).

我该如何解决这个问题?

编辑:我发现我可以用参数 -ConfigurationTypeName指定配置类型的名称:
PM> add-migration -ConfigurationTypeName Test.Migrations.Configuration Initial
The type 'Configuration' is not a migrations configuration type.

这仍然不起作用,但至少它阐明了为什么 add-migration保释,即它认为 Test.Migrations.Configuration不是迁移配置类型。有没有人知道为什么它不被接受,因为它是由 enable- migrations 生成的?请参阅下面生成的代码以供引用(UserModelContainer 派生自 DbContext):
namespace Test.Migrations
{
using System;
using System.Data.Entity;
using System.Data.Entity.Migrations;
using System.Linq;
using Test.Models;

internal sealed class Configuration : DbMigrationsConfiguration<UserModelContainer>
{
public Configuration()
{
AutomaticMigrationsEnabled = false;
}

protected override void Seed(UserModelContainer context)
{
// This method will be called after migrating to the latest version.

// You can use the DbSet<T>.AddOrUpdate() helper extension method
// to avoid creating duplicate seed data. E.g.
//
// context.People.AddOrUpdate(
// p => p.FullName,
// new Person { FullName = "Andrew Peters" },
// new Person { FullName = "Brice Lambson" },
// new Person { FullName = "Rowan Miller" }
// );
//
}
}
}

最佳答案

事实证明,问题是我在针对 .NET framework 4.5 时安装了 Entity Framework 5.0.0 RC。由于部署到 Windows Azure,我发现我必须改为以 .NET 4.0 为目标。我不知道 NuGet 的复杂性,但似乎为 .NET 4.5 安装的 EF 包在我的 4.0 目标项目中无法正常工作。

重新安装 EF NuGet 包后,将我的项目定位到 .NET 4.0,一切正常。

关于entity-framework - Entity Framework 5.0 RC - 包管理器命令 'add-migration' 因据称缺少配置类型而失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11844729/

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