Entity Framework 具有多对多关系生成表

Entity Framework with many to many relationship generetad tables

这是我的问题。我有 2 个模型(人、事件),使用 EF 和模型构建器生成预订 table(使用 IdPerson 和 IdEvent 作为属性)。 所以在我的数据库中它是正确的,我有 3 个 tables(人、事件和预订)具有多对多关系。但是我在Visual Studio只有2款(因为是自己生成的table所以Booking不存在)。 使用我的控制器,我想为 Person 编写一个操作来订阅一个事件,我必须在我的 table 预订上写在数据库上,但它不作为模型存在,所以我不能这样做。 我该如何着手? 我应该创建预订模型并删除我的模型构建器吗?

我假设这是模型优先方法。

只有 2 个对象的原因是,默认情况下,EF 不会为关节 table 创建对象。它创建的是 Navigation 属性 (Entity Framework - Navigation Property Basics)。在一对多场景中,父对象内的导航 属性 包含外部/子对象 table 中的实体集合。在多对多场景中,每个实体的导航属性将只包含其其他实体的集合。

当您使用像 EF 这样的 ORM 时,您可以坐下来让 ORM 管理这些中间 table。

您可以使用

person.Events.Add(event)

event.People.Add(event)

并且 EF 处理所有并在 table.

中插入带有 personIdeventId 的行

您可以在此处找到完整示例: http://blogs.msdn.com/b/wriju/archive/2011/05/14/code-first-ef-4-1-building-many-to-many-relationship.aspx