私は定義のあるテーブルテイルを持っています
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用の1つの列とenum_TaleAuthorTypeId用の1つの列との良好な関係があります。
ここで、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は2つの列「UserProfile_UserId1」と「UserProfile_UserId」を追加したいのですが、値として1つ必要です。
私の問題は何ですか?