我有一个带定义的表Tale
public class Tale
{
public int Id { get; set; }
public string Title { get; set; }
public string Text { get; set; }
public DateTime ReleaseDate { get; set; }
public int enum_TaleAuthorTypeId { get; set; }
public virtual enum_TaleAuthorType enum_TaleAuthorType { get; set; }
public int CommentableId { get; set; }
public virtual Commentable Commentable { get; set; }
}
当我在控制台中输入'update-database'时,我与CommentableId的一列和enum_TaleAuthorTypeId的列有很好的关系。
现在,我想添加UserProfile并尝试输入类似:
的内容 public int UserProfile_UserId { get; set; }
public virtual UserProfile UserProfile { get; set; }
但是在添加迁移之后,我有了这个:
public override void Up()
{
CreateTable(
"dbo.UserProfile",
c => new
{
UserId = c.Int(nullable: false, identity: true),
UserName = c.String(),
})
.PrimaryKey(t => t.UserId);
AddColumn("dbo.Tales", "UserProfile_UserId", c => c.Int(nullable: false));
AddColumn("dbo.Tales", "UserProfile_UserId1", c => c.Int());
AddForeignKey("dbo.Tales", "UserProfile_UserId1", "dbo.UserProfile", "UserId");
CreateIndex("dbo.Tales", "UserProfile_UserId1");
}
public override void Down()
{
DropIndex("dbo.Tales", new[] { "UserProfile_UserId1" });
DropForeignKey("dbo.Tales", "UserProfile_UserId1", "dbo.UserProfile");
DropColumn("dbo.Tales", "UserProfile_UserId1");
DropColumn("dbo.Tales", "UserProfile_UserId");
DropTable("dbo.UserProfile");
}
起初,看起来像EF想创建表UserProfile(但它已经创建,我不需要它)。然后,EF想要添加两列'UserProfile_UserId1'和'UserProfile_UserId',但我真的需要一个值。
我的问题是什么?
答案 0 :(得分:0)
尝试在您的上下文中添加
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Ignore<UserProfile>();
}