2

したがって、次の列を追加して ApplicationUser クラスを拡張しようとしています..

  • ユーザー ID の作成
  • 日付を作成します
  • ユーザー ID の更新
  • 更新日

ApplicationCode クラスに追加したコードを次に示します。

[MaxLength(128)]
[Required(ErrorMessage = "Create User Id is Required.")]
public string CreateUserId { get; set; }

[ForeignKey("CreateUserId")]
public ApplicationUser CreateUser { get; set; }

public DateTime CreateDate { get; set; }

[MaxLength(128)]
public string UpdateUserId { get; set; }

[ForeignKey("UpdateUserId")]
public ApplicationUser UpdateUser { get; set; }

public DateTime? UpdateDate { get; set; }

私が最終的にやろうとしているのCreateUserIdは、指し示す外部キー制約をApplicationUser.Id持ち (必須)、UpdateUserId指し示す外部キー制約を持つApplicationUser.Id(オプション)ことです。

ただし、次のエラーが表示されます。

ApplicationUser_UpdateUser_Target: : 関係 'ApplicationUser_UpdateUser' のロール 'ApplicationUser_UpdateUser_Target' では多重度が無効です。依存ロール プロパティはキー プロパティではないため、依存ロールの多重度の上限は '*' である必要があります。

誰かがこれを設定する方法を教えてもらえますか?

編集..

私はそれを理解したと思います

public string UpdateUserId { get; set; }
public ApplicationUser UpdateUser { get; set; }

public string CreateUserId { get; set; }
public ApplicationUser CreateUser { get; set; }

public DateTime CreateDate { get; set; }

public DateTime? UpdateDate { get; set; }

protected override void OnModelCreating(System.Data.Entity.DbModelBuilder modelBuilder)
{
    modelBuilder.Entity<ApplicationUser>()
                .HasRequired(a => a.CreateUser)
                .WithMany()
                .HasForeignKey(u => u.CreateUserId);

    modelBuilder.Entity<ApplicationUser>()
                .HasRequired(a => a.UpdateUser)
                .WithMany()
                .HasForeignKey(u => u.UpdateUserId).WillCascadeOnDelete(false);

    base.OnModelCreating(modelBuilder);
}
4

0 に答える 0