Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# “EF代码优先”;字符串或二进制将被截断;运行更新数据库时_C#_.net_Entity Framework - Fatal编程技术网

C# “EF代码优先”;字符串或二进制将被截断;运行更新数据库时

C# “EF代码优先”;字符串或二进制将被截断;运行更新数据库时,c#,.net,entity-framework,C#,.net,Entity Framework,我的迁移如下所示: public override void Up() { AddColumn("dbo.TargetTable", "Table1Id", c => c.Int(nullable: false)); AddForeignKey("dbo.TargetTable", "Table1Id", "dbo.Table1", "Id"); AddColumn("dbo.TargetTable", "Table2Id"

我的迁移如下所示:

    public override void Up()
    {
        AddColumn("dbo.TargetTable", "Table1Id", c => c.Int(nullable: false));
        AddForeignKey("dbo.TargetTable", "Table1Id", "dbo.Table1", "Id");

        AddColumn("dbo.TargetTable", "Table2Id", c => c.Int(nullable: false));
        AddForeignKey("dbo.TargetTable", "Table2Id", "dbo.Table2", "Id");
    }

    public override void Down()
    {
        DropForeignKey("dbo.TargetTable", "Table1Id", "dbo.Table1", "Id");
        DropColumn("dbo.TargetTable", "Table1Id", c => c.Int(nullable: false));

        DropForeignKey("dbo.TargetTable", "Table2Id", "dbo.Table2", "Id");
        DropColumn("dbo.TargetTable", "Table2Id", c => c.Int(nullable: false));

    }
当我运行“更新数据库”时,我得到一个错误: 字符串或二进制数据将被截断。 声明已终止

我没有创建任何表,只是在现有表中添加了两列。所以我不确定这个错误是从哪里来的。我没有操作任何字符串或二进制列。任何帮助都将不胜感激

编辑

桌子是空的。它没有行,这就是列不可为空的原因

模型:

 public class TargetTable
{
    //This column already exists.
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }

    public int Table1Id { get; set; }
    public virtual Table1 Table1 { get; set; }

    public int Table2Id { get; set; }
    public virtual Table2 Table2 { get; set; }
}

您正在将不可为空的字段插入现有表中。若表中包含行,则会导致错误。

将不可为空的字段插入到现有表中。如果表中包含行,则会导致错误。

确保列上的类型和外键上的类型相同

确保列上的类型和外键上的类型相同

它们是,Id列是整数。表中有触发器吗?它们是“Id”列是整数。表上有触发器吗?可以发布模型吗?可以发布模型吗?