首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在具有双向导航属性的两个实体之间建立多个关系(代码优先)?

如何在具有双向导航属性的两个实体之间建立多个关系(代码优先)?
EN

Stack Overflow用户
提问于 2014-09-18 12:02:20
回答 1查看 346关注 0票数 0

正如您在下面的代码中所看到的,我有两个表,具有一个、一对多的和一个、多对多的关系。这段代码似乎错了,因为我无法从Person实体导航到Meeting实体。我不懂行话,但我会用英语告诉你。

你知道每个人都参加过许多会议,你知道每个人都创造了很多会议,每次会议都有很多与会者,你知道每个会议都有一个创建者。

当我们谈论一个会议时,您可以使用外键"Creator_ID“告诉创建者当我们谈论一个会议时,您可以使用中间映射表来分辨谁是与会者。

当我们谈论一个人时,你可以告诉会议,这个人使用中间映射表参加了会议。

当我们谈论一个人告诉这个人创建的会议时,你应该通过所有的会议,检查他们的外键"Creator_ID“。

我知道DBMS就是这样工作的。但是由于我正在使用实体框架,所以我希望能够使用

代码语言:javascript
复制
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类中实现一个方法,该方法遍历所有会议并返回由此人创建的会议?我怎么发动汽车呢?

EN

回答 1

Stack Overflow用户

发布于 2014-09-18 12:18:27

您应该有一些配置说明,如

代码语言:javascript
复制
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);

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25912103

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档