Cześć chce sobie napisać prosty Chat. Ale nie wiem za bardzo jak mają wyglądać modele domenowe. Mam coś takiego jest to poprawne ?
User:
{
public string FirstName { get; protected set; }
public string LastName { get; protected set; }
public DateTime CreatedAt { get; protected set; }
public virtual ICollection<Message> Messages { get; protected set; }
public virtual ICollection<Conversation> Conversations { get; protected set; }
}
Message:
public class Message : Entity
{
public string UserId { get; protected set; }
public string Content { get; protected set; }
public DateTime CreatedAt { get; protected set; }
public long ConversationId { get; set; }
public virtual Conversation Conversation { get; protected set; }
public virtual User User { get; protected set; }
}
Conversation:
public class Conversation : Entity
{
public ConversationType ConversationType { get; protected set; }
public virtual ICollection<Message> Messages { get; protected set; }
public virtual ICollection<User> Users { get; protected set; }
}
Te modele są poprawne. Powinnieniem mieć relacje wiele do wielu miedzy User a Conversation. Jezeli tak to musze utworzyć jeszcze jedną klase UserConversation np aby zawerała coś takiego co nie ? Bo korzystam z EF Core
public class UserConversation : Entity
{
public string UserId { get; protected set; }
public string ConversationId { get; protected set; }
public virtual User User { get; protected set; }
public virtual Conversation Conversation { get; protected set; }
}
Z góry bardzo dziękuje za pomoc :)