0
私はforeinキーリレーションシップ(one - to ---- many)を作成しようとしていますコードの最初の移行でテーブル名が変更されるのはなぜですか?
そして、既存のpersonテーブルのforeinKeyを持っています。
私のコード。
public class ApplicationUser : IdentityUser
{
[Required]
public long PersonId { get; set; }
//[Required]
[ForeignKey("PersonId")]
public virtual Person Person { get; set; }
public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser> manager)
{
// Note the authenticationType must match the one defined in CookieAuthenticationOptions.AuthenticationType
var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie);
// Add custom user claims here
return userIdentity;
}
}
人表(DB内の既存の)
public class Person
{
[System.ComponentModel.DataAnnotations.KeyAttribute()]
[System.ComponentModel.DataAnnotations.Schema.DatabaseGenerated(System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption.None)]
public long PersonId { get; set; }
public virtual ICollection<ApplicationUser> Users { get; set; }
}
問題:
私は次のことを得る移行を使用している場合。
アップ方法:
CreateTable(
"dbo.People",
c => new
{
PersonId = c.Long(nullable: false),
})
.PrimaryKey(t => t.PersonId);
ダウン方法:
public override void Down()
{
DropForeignKey("dbo.AspNetUsers", "PersonId", "dbo.People");
DropIndex("dbo.AspNetUsers", new[] { "PersonId" });
DropTable("dbo.People");
}
dbo.Peopleはどこから来ましたの?すでに作成されたテーブルであるdb.Person(sql経由)に行くと仮定します。
どうすればこの問題を解決できますか?
@Alexey Andrushkevichありがとう – ThunD3eR