在不同项目的上下文中为项目启用迁移
本文关键字:项目 启用 迁移 上下文 | 更新日期: 2023-09-27 18:22:32
我正在运行:
enable-migrations -ContextProjectName CC.Data -StartUpProjectName CC.Web -ContextTypeName CC.Data.CcDataContext -ProjectName CC.Plugin.MyPlugin -Force -Verbose
这会在CC.Plugin.MyPlugin.Migrations
中创建名为Configuration.cs
的配置文件,但当它完成时,会抛出以下错误:
迁移配置类型在中找不到"CC.Pluin.MyPlugin.Migrations.Configuration"程序集"CC.Pluin.MyPlugin".
我不明白它怎么找不到它,因为它只是在那里添加了它。congif文件如下所示:
namespace CC.Plugin.MyPlugin.Migrations
{
using System;
using System.Data.Entity;
using System.Data.Entity.Migrations;
using System.Linq;
internal sealed class Configuration : DbMigrationsConfiguration<CC.Data.CcDataContext>
{
public Configuration()
{
AutomaticMigrationsEnabled = false;
}
protected override void Seed(CC.Data.CcDataContext 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" }
// );
//
}
}
}
看起来不错。
有什么想法吗?
编辑:这似乎是链接同一解决方案中项目的引用时出现的问题。当我从解决方案链接中删除这些引用,转而通过浏览并指向DLL时,它就开始工作了。
编辑:这并没有解决问题。虽然它允许我添加初始迁移,但当我尝试运行更新数据库时,它似乎又坏了(尽管我确实让它工作了)
经过多次尝试和错误,我发现原因是需要更新我的解决方案中所有项目中的ASP.NET MVC引用。一旦我这样做了,它就像一种魅力。
除此之外,迁移其他一些插件也造成了问题,通过反复尝试,我似乎需要通过Nuget添加Web油脂引用,并将ANTLR更新到最新版本。
另一个问题是:我的插件是主要解决方案的一部分。为了得到一些更新,我不得不自己打开它。保存解决方案文件。启用Nuget自动恢复。清理构建,尝试并启用迁移,让它失败。撤消我在源代码管理中的所有更改。再次通过主解决方案加载它,然后添加迁移,这时它抱怨找不到引用。一旦我添加了这些(或者在某些情况下删除并重新添加),它就起作用了。很奇怪,但它可能对其他人有用。