正如您在下面的代码中所看到的,我有两个表,具有一个、一对多的和一个、多对多的关系。这段代码似乎错了,因为我无法从Person实体导航到Meeting实体。我不懂行话,但我会用英语告诉你。
你知道每个人都参加过许多会议,你知道每个人都创造了很多会议,每次会议都有很多与会者,你知道每个会议都有一个创建者。
当我们谈论一个会议时,您可以使用外键"Creator_ID“告诉创建者当我们谈论一个会议时,您可以使用中间映射表来分辨谁是与会者。
当我们谈论一个人时,你可以告诉会议,这个人使用中间映射表参加了会议。
但
当我们谈论一个人告诉这个人创建的会议时,你应该通过所有的会议,检查他们的外键"Creator_ID“。
我知道DBMS就是这样工作的。但是由于我正在使用实体框架,所以我希望能够使用
meetings = thisPerson.meetingsCreated;
public class Person
{
public int ID {get; set;}
public string UserName { get; set; }
public ObservableCollection<Meeting> meetingsAttended { get; set; }
public ObservableCollection<Meeting> meetingsCreated { get; set; }
}
public class Meeting
{
public int ID { get; set; }
string Title { get; set; }
[ForeignKey("Creatator_ID")]
public virtual Person createdBy { get; set; }
public virtual ObservableCollection<Person> Attendees { get; set; }
}我是否应该在Person类中实现一个方法,该方法遍历所有会议并返回由此人创建的会议?我怎么发动汽车呢?
发布于 2014-09-18 12:18:27
您应该有一些配置说明,如
protected override void OnModelCreating(DbModelBuilder modelBuilder) {
modelBuilder.Entity<Meeting>().HasResquired(m => m.CreatedBy).WithMany(p => p.meetingCreated);
modelBuilder.Entity<Meeting>().HasMany(m => m.Attendees).WithMany(p => p.meetingAttended);
}https://stackoverflow.com/questions/25912103
复制相似问题