したがって、次の列を追加して 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);
}