[英]Add-Migration: Partial results
我創建了兩個類:Máquina(機器)和TipoMáquina(機器類型),並且,我嘗試給該類Máquina一個來自TipoMáquina的外鍵(注意:如果是第一次遷移,沒有其他表格)。 :
namespace Plataforma.Models
{
public class Máquina
{
[Key, Required]
public int MáquinaId { get; set; }
public int TipoMáquinaId { get; set; }
public virtual TipoMáquina TipoMáquina { get; set; }
}
}
namespace Plataforma.Models
{
public class TipoMáquina
{
[Key, Required]
public int TipoMáquinaId { get; set; }
public string DescripciónTipoMáq { get; set; }
public int PesoKg { get; set; }
public int AltoMt { get; set; }
public int LargoMt { get; set; }
public int AnchoMt { get; set; }
public virtual ICollection<Máquina> Máquinas { get; set; }
}
}
它們也包含在DBContext中:
public class Plataforma: DbContext
{
public DbSet<Máquina> Máquinas { get; set; }
public DbSet<TipoMáquina> TipoMáquinas { get; set; }
}
但是,數據庫中的結果只是第一個表。 沒有TipoMáquina的跡象或Máquina表中的前鍵,我也不知道為什么。
我懷疑與down()部分的遷移有關:
public partial class PrimeraRelación : DbMigration
{
public override void Up()
{
CreateTable(
"dbo.Máquina",
c => new
{
MáquinaId = c.Int(nullable: false, identity: true),
TipoMáquinaId = c.Int(nullable: false),
})
.PrimaryKey(t => t.MáquinaId)
.ForeignKey("dbo.TipoMáquina", t => t.TipoMáquinaId, cascadeDelete: true)
.Index(t => t.TipoMáquinaId);
CreateTable(
"dbo.TipoMáquina",
c => new
{
TipoMáquinaId = c.Int(nullable: false, identity: true),
})
.PrimaryKey(t => t.TipoMáquinaId);
}
public override void Down()
{
DropForeignKey("dbo.Máquina", "TipoMáquinaId", "dbo.TipoMáquina");
DropIndex("dbo.Máquina", new[] { "TipoMáquinaId" });
DropTable("dbo.TipoMáquina");
DropTable("dbo.Máquina");
}
}
}
任何建議,不勝感激。
在TipoMachinas中嘗試以下修改:
private ICollection<Máquina> máquinas;
public virtual ICollection<Máquina> Máquinas
{
get
{
return this.máquinas;
}
set
{
this.máquinas = value;
}
}
並在構造函數中:
public TipoMáquina()
{
this.máquinas = new HashSet<Máquina>();
}
同樣,如果您將主鍵ID命名為唯一的Id而不是ModelId,那就更好了:)
最后,您可以將虛擬添加到dbcontext的dbset中
public class Plataforma: DbContext
{
public virtual IDbSet<Máquina> Máquinas { get; set; }
public virtual IDbSet<TipoMáquina> TipoMáquinas { get; set; }
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.