自己参照の作成に問題があります。
私はこのようなクラスを持っています
public class User
{
[MaxLength(50, ErrorMessage = "")]
[Required(ErrorMessage = "")]
public string FirstName { get; set; }
[MaxLength(50, ErrorMessage = "")]
[Required(ErrorMessage = "")]
public string LastName { get; set; }
[Key]
[Required(ErrorMessage = "")]
[MaxLength(20, ErrorMessage = "")]
public string UserName { get; set; }
[Required(ErrorMessage = "")]
[MaxLength(20, ErrorMessage = "")]
public string Password { get; set; }
[ForeignKey("ParentUser")]
public string ParentUserName { get; set; }
public User ParentUser { get; set; }
public ICollection<User> SubsetUsers { get; set; }
}
Fluent API を使用して自己参照関連付けを構成します。
modelBuilder.Entity<User>()
.HasOptional(a => a.ParentUser)
.WithMany(a=> a.SubsetUsers)
.HasForeignKey(a => a.ParentUserName);
ユーザーを編集してユーザー ( db.User.Find(SelectedUser.UserName)
) を選択しようとすると、エラーが発生します。
多重度の制約に違反しています。関係「AutomationDataLayer.User_ParentUser」のロール「User_ParentUser_Target」の多重度は 1 または 0..1 です。