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