По какой-то причине я не могу разобраться с этим ... У меня есть система личных сообщений, которая позволяет пользователям отправлять друг другу PM.Пользователь также может удалить сообщение из своего почтового ящика, но когда это происходит, его не следует удалять из почтового ящика другого пользователя.Для этого я считаю, что между сущностями «Пользователь» и «Сообщение» должно быть много-много отношений.Но как мне сопоставить это отношение, чтобы пользователи могли удалять сообщения из своего почтового ящика (для которого я решил создать логическое значение: DisplayInInbox) и не удалять его из почтового ящика другого пользователя?
Моя текущая модель, которая не работает, выглядит следующим образом:
public class Message
{
public int Id { get; set; }
[MaxLength(150)]
public string Subject { get; set; }
[MaxLength(3000)]
public string Content { get; set; }
public DateTime DateSent { get; set; }
public DateTime? LastViewed { get; set; }
public bool IsRead { get; set; }
public bool DisplayInInbox { get; set; }
public int? ParentId { get; set; }
}
и в классе пользователя у меня есть это свойство:
public virtual ICollection<Message> ReceivedMessages { get; set; }
Нужно ли мне два логических значения или одного будет достаточно?И как мне в конечном итоге отобразить это отношение?
ОБНОВЛЕНИЕ:
Хорошо, теперь вот моя модель:
public class Inbox
{
[Key, Column(Order = 0), ForeignKey("User")]
public int UserId { get; set; }
[Key, Column(Order = 1), ForeignKey("Message")]
public int MessageId { get; set; }
public DateTime? LastViewed { get; set; }
public bool IsRead { get; set; }
public virtual Message Message { get; set; }
public virtual User Sender { get; set; }
public virtual User Receiver { get; set; }
}
public class Message
{
public int Id { get; set; }
[MaxLength(150)]
public string Subject { get; set; }
[MaxLength(3000)]
public string Content { get; set; }
public DateTime DateSent { get; set; }
public int? ParentId { get; set; }
public virtual ICollection<Inbox> ReceivedBy { get; set; }
public virtual ICollection<Inbox> SentBy { get; set; }
}
И в классе User:
public virtual ICollection<Inbox> ReceivedMessages { get; set; }