背景
为此,我创建了两个实体对象,它们反映了它们各自的表关系
public class User
{
public int Id {get; set;} //Primary Key
public string Name {get; set;}
public virtual ICollection<OOOSchedule> Schedules {get; set;}
}
public class OOOSchedule
{
public int Id {get; set;} //Primary Key
public int UserId {get; set;} //Foreign key reference from User table above (column Id)
public int AlternateUserId {get; set;} //Another foreign key reference from User table above (column Id)
public DateTime StartDate {get; set;}
public DateTime EndDate {get; set;}
public virtual User User {get; set;}
public virtual User AlternateUser {get; set;}
}
问题是我能够为用户获取 OOO 计划(集合),并且相应的用户数据也填充在 OOO 计划对象中。但是,我可能无法在 OOO 计划对象中获取 AlternateUser
数据。
我已经使用 Fluent API 尝试过这样的操作(尝试了多种变体):
modelBuilder.Entity<OOOSchedule>()
.HasOne(s => s.User)
.WithMany(o => o.Schedules);
modelBuilder.Entity<OOOSchedule>()
.HasOne(s => s.AlternateUser)
.WithMany(o => o.Schedules);
modelBuilder.Entity<User>()
.HasMany(o => o.Schedules)
.WithOne(u => u.User);
我确定问题是由于 DbContext
中的关系不正确,但由于我对 EF 的了解非常基础,我无法正确理解。
有人可以帮我解决这个问题吗?