欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

asp.net add-migration 迁移 但是 up 里面为空 有大用 有大大用

见红色的字

namespace MyProject.Migrations
{
using System;
using System.Data.Entity.Migrations;

public partial class _1002 : DbMigration
{
    public override void Up()
    {
    }

    public override void Down()
    {
    }
}
}



您需要将表添加到DbContext类的实现中,例如

public class MyDatabaseEntities : DbContext {
    public virtual DbSet<MyTable> MyTable { get; set; }
}
       
 编码阴谋 |  2014-03-28 09:29

我可以通过从 _MigrationHistory 表中删除上次迁移的记录来解决此问题。在我将新模型对象的 DbSet 添加到 DbContext 类之前,此记录已被错误地创建。在此删除之后,使用正确的 Up() 和 Down() 方法创建了新的迁移。

 托马斯·克尔奇纳克 |  2017-07-29 07:41

我遇到了这个问题,因为我忘记添加 {get; set;} 在我的变量名之后

 用户3413723 |  2018-06-19 15:52

在将现有的 EF Core 数据上下文回滚为空时,我的迁移不会生成,直到我删除了ApplicationDbContextModelSnapshot伴随迁移的内容。

此类是自动生成的,需要与您当前的迁移级别保持一致。

 杰里米·史密斯 |  2018-04-29 14:24

在我的例子中,datacontext 项目是一个类库项目。它与 asp.net mvc 5 项目的启动项目不同。现在错误地启动项目中的连接字符串指向不同的不同数据库。

所以要保证datacontext项目和startup项目指向同一个数据库。还可以使用问题中提到的完整命令,如下所示。您也可以包括 -Force。

add-migration "InitialMigration" -verbose -ProjectName "MyEFproject" -Force
       
 VivekDev |  2017-01-01 04:19
另外:确保您添加的任何新属性都是公开的!

就我而言,我正在进行迁移,将字段添加到现有表中,并以空UpDown方法结束,

我有这样的事情:

public bool ExistingField { get; set; }
bool NewField { get;set; }
           

您看得出来差别吗...?


如果您犯了这个错误,请使用相同的名称重新运行迁移(您可能需要添加-Force参数以将其完整搭建)。

PS。在尝试执行任何类型的 EF 命令之前,请始终确保您的项目已完全构建。如果您的项目尚未构建,那么您就是在自找麻烦。            

 Simon_Weaver |  2018-02-24 20:07

当我错误地使用一对多关系而不是多对多关系关联两个表时(即我忘记了其中一个导航属性),我正在添加空迁移。我有一个种子文件,它期待多对多关系,随后在迁移过程中失败,导致迁移失败。不幸的是,没有任何输出表明问题很明显,只有通过使用 Entity Framework Power Tools(v4,但安装在 VS2015 中),我才能直观地看到不正确的关系并意识到这可能是原因。

 沙林|  2016-02-17 17:23

在附加此参数的空迁移之前,我必须使用最新迁移更新数据库-TargetMigration:"{your-migration-name}"

可能它会告诉您,我们尝试的下一个错误会导致数据丢失。如果您负担得起,请附加-Force它。

然后我尝试添加我的新的Add-Migration,它不是空的。

如果上面抛出异常,您可能需要做的最后一件事是转到 SQL Server Management Studio 并删除最后一个Automatic migration并尝试再次添加它。

 通用 |  2018-06-07 12:06

从您的迁移文件夹中删除所有内容!之后添加迁移。

 马西 |  2019-04-14 11:00

在我想向我的数据库添加一个额外的列之后,我遇到了这个确切的问题。因为除非表为空,否则我的数据不会播种,因此我删除了所有表和迁移以重新创建表。当我尝试迁移时,迁移有空的 up 和 down 方法。

我通过删除快照文件解决了这个问题,因为这是创建问题。所以我删除了所有迁移和快照文件,再次添加迁移并运行更新数据库。表和迁移已使用我的新列成功更新。

但是,如果您正在处理测试数据,更好的方法是运行 down 方法并像这样删除表。显然,在现实世界中删除表格是很糟糕的。

 疯狂笔 |  2018-05-09 00:17

对我来说,问题是应该对应于表 id 的 Id 属性被命名为 FeedbackId。我更改为“Id”,然后 Up/Down 不再为空。不知道这是否能有所帮助

 迪奥白兰度 |  2019-06-17 08:13

来自  https://zditect.com/pages/36359681.html

普通分类: