根据以下帖子,我正在尝试在实体框架中创建多对多关系(代码优先):在 MVC 和实体框架中选择有限数量的数据库设计?
但是,我无法让它正常工作,而且我确信我正在以错误的方式做一些非常简单的事情。这是我的尝试中没有的图表:
联结表的要点是我需要在关系中有一个额外的属性 Level,所以我不能只使用顾问和程序之间的直接关系。我在设计器中手动添加了 ConsultantProgramLink 实体,然后分别添加到 Program 和 Consultant 的关联,选择为每个添加 FK,然后将它们设为主键。但是当我这样做时,它并没有像我预期的那样工作:
如果我在 Consultant 和 Program 之间进行了直接关联,我就可以在我的代码中引用例如 Consultant.Programs。但这现在不适用于连接表。有什么办法可以解决这个问题,还是我总是必须通过联结属性(Consultant.ConsultantProgramLink.Programs)?无论如何,即使我尝试通过 junction 属性也无济于事。我可以在我的代码中执行 Consultant.ConsultantProgramLink,但是另一个点并没有给我导航属性 Programs(由于某种原因,它也变成了简单的 Program,为什么?如果我最终可以访问它们,我可以重命名它们吗?) .
那么我做错了什么?为什么我不能通过代码中的点符号访问属性?