我有两个实体:UserProfile和Inbox
这是我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
之间的这两种关系?
答案 0 :(得分:0)
如果您有向用户/ ui公开的DTO以添加收件箱,则dto不应包含用户/发件人属性,只包括Ids SenderId / UserId,但要将它们保留在收件箱实体中,因为您需要加载有关收件箱实体中的用户/发件人的一些详细信息,因此您可以使用Entity-framework将其包含在内,而不是加入UserProfile表。希望有所帮助。