У меня есть две сущности: USERPROFILE и ВходящиеУправление два соотношения между 2 субъектами
Это мой код для UserProfile
:
public partial class UserProfile {
public int Id { get; set; }
public string UserName { get; set; }
public string Password { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
//--------------------------
public virtual ICollection<Messages.Inbox> Inboxes { get; set; }
}
public partial class UserProfile {
public static void Configure(DbModelBuilder mb) {
mb.Entity<UserProfile>().HasKey(up => up.Id);
}
}
И это мой код Inbox
:
public partial class Inbox {
public int Id { get; set; }
public int UserId { get; set; }//FK to userProfile
public Accounts.UserProfile User { get; set; }
public DateTime MessageDateTime { get; set; }
public string Context { get; set; }
public int SenderId { get; set; }//FK to userProfile
public Accounts.UserProfile Sender { get; set; }
}
public partial class Inbox {
public static void Configure(DbModelBuilder mb) {
mb.Entity<Inbox>().HasKey(up => up.Id);
mb.Entity<Accounts.UserProfile>().HasMany(up => up.Inboxes)
.WithRequired(p => p.User)
.HasForeignKey(p => p.UserId);
mb.Entity<Accounts.UserProfile>().HasMany(up => up.Inboxes)
.WithRequired(p => p.Sender)
.HasForeignKey(p => p.SenderId);
}
}
Как я могу управлять этими двумя отношениями между Inbox
и UserProfile
?
Я не уверен, что вы подразумеваете под «управлением» здесь, но, глядя на ваше сопоставление, используя EF, когда вы добавляете новый объект входящей почты, например, вам нужно также установить свойства пользователя/отправителя и после установки объект objectState родительского входящего, который будет «добавлен», EF также добавит свойства навигации, которые будут добавлены, и это добавит 3 сущности в базу данных, 1 папку «Входящие» и 2 пользовательских профайла. этот сценарий действителен для вашего бизнеса? –
@ omar.alani, нет, userId и senderId являются только FK для UserProfile, например, у нас есть userProfile с идентификатором '5', а другой с идентификатором '8', а в папке «Входящие» - 5, а senderid - 8 –
yep, поэтому технически вы можете только установить SenderId/UserId, а входящие сообщения можно сохранить правильно, но мой предыдущий сценарий по-прежнему технически важен, а это означает, что вы все равно можете добавлять пользователей из объекта входящей почты, и если вы не хотите, чтобы это произошло, как вы можете настройте пользователей отдельно, никогда не подвергайте свойства Sender/User своим сервисом. –