есть 3 класса:
public class User
{
public Guid Id { get; set; }
public string Username { get; set; }
public string PersonelNumber { get; set; }
public string Password { get; set; }
public bool IsActive { get; set; }
public DateTime LastLoginDate { get; set; }
public bool IsOnline { get; set; }
}
public class Comment
{
public Guid Id { get; set; }
/// <summary>
/// Title of the comment
/// </summary>
public string Title { get; set; }
/// <summary>
/// Full text for comment
/// </summary>
public string Text { get; set; }
//Maps to the User Id
public Guid CreatedById { get; set; }
public virtual User CreatedBy { get; set; }
}
public class FileVersion
{
public Guid Id { get; set; }
public string Path { get; set; }
public int Version { get; set; }
//Referecne to optional comment
public virtual Guid ChangeCommentId { get; set; }
public virtual Comment ChangeComment { get; set; }
//Referece to user who added a file
public virtual Guid AddedById { get; set; }
public virtual User AdddedBy { get; set; }
//Reference to User who may have the file checked out
public virtual Guid CheckedOutById { get; set; }
public virtual User CheckedOutBy { get; set; }
}
Я получаю сообщение об ошибке, когда база данных пытается создать связь комментариев между FilVersion и комментариями. Я создал это отображение для класса FileVersion:
HasOptional(f => f.ChangeComment).WithMany().HasForeignKey(f => f.ChangeCommentId).WillCascadeOnDelete(false);
Я не уверен, как настроить сопоставления так, чтобы я не получал ошибку Multiplicity при создании базы данных. FileVersion необходимо указать, кто добавил файл и у кого он может быть извлечен для редактирования.