Я разрабатываю библиотеку.NET Framework 4.5 с С# и Entity Framework 6.1 Code First.
У меня эти два класса:
public class User
{
public int UserId { get; set; }
public string UserName { get; set; }
public ICollection<Group> Groups { get; set; }
public ICollection<Message> MessagesSent { get; set; }
public ICollection<Message> MessagesReceived { get; set; }
}
public class Message
{
public int MessageId { get; set; }
public string Body { get; set; }
public DateTime DateSent { get; set; }
public User Sender { get; set; }
public ICollection<User> Recipients { get; set; }
}
Как сделать, чтобы создать таблицу получателей?
Я использую Fluent API, и у меня есть два класса:
public class MessageConfiguration: EntityTypeConfiguration<Message>
А ТАКЖЕ
public class UserConfiguration: EntityTypeConfiguration<User>
Но я не то, что мне нужно сделать, чтобы создать таблицу Recipient
.
Я пытаюсь представить это:
Правильно ли работает мой проект базы данных?
Попробуй это:
public class MessageConfiguration : EntityTypeConfiguration<Message>
{
public MessageConfiguration()
{
this.HasMany(x => x.Recipients)
.WithMany(x => x.MessagesReceived)
.Map(x => x.ToTable("MessageRecipients")
.MapLeftKey("MessageId")
.MapRightKey("UserId"));
}
}
(Обратите внимание, что я назначил имя таблицы MessageRecipients
вместо Recipients
)
HasMany
иWithMany
. Если у меня только один получатель и только одно сообщение, это проблема? Я так не думаю, но это мое сомнение. Благодарю.Message.Recipients
является коллекцией?