[英]EF Code First “String or binary would be truncated” when running Update-Database
我的遷移如下所示:
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));
}
當我運行“ Update-Database”時,出現錯誤:字符串或二進制數據將被截斷。 該語句已終止。
我沒有創建任何表,只是在現有表中添加了兩列。 所以我不確定這個錯誤可能來自哪里。 我沒有操縱任何字符串或二進制列。 任何幫助將非常感激。
編輯
該表是空的。 它沒有行,這就是為什么列不可為空的原因。
該模型:
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; }
}
您正在將不可為空的字段插入現有表。 如果表包含行,將導致錯誤。
確保列和外鍵上的類型相同
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.