c# - Entity Framework 可以在没有交集对象的情况下处理多对多关系吗?

标签 c# entity-framework entity-framework-5 ef-database-first

使用数据库优先模型:假设我们有经典表 StudentCourseStudentCourse(后者显然有 FKs 到 学生类(class))。

如果将此模型导入 EF,您将获得为每个模型生成的对象。 StudentCourse 类都有一个 StudentCourses 集合,您需要从中跳转另一个关系才能到达 Course Student

我希望以底层交集表不可见的方式生成代码,即 Student 具有 Courses 的集合,而 Course 有一个 Students 的集合。我在其他 ORM 软件(特别是 TopLink )中看到过这样做。可以在 EF 中完成吗?

最佳答案

根据 this tutorial ,如果您的 StudentCourse 表仅包含外键列,您将获得所需的行为。如果它包含任何其他列,EF 将生成一个中间实体来表示连接。

在这种情况下,从 StudentCourse 表中删除代理键并将其替换为复合主键应该可行。

关于c# - Entity Framework 可以在没有交集对象的情况下处理多对多关系吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13588574/

相关文章:

c# - Process.Close() 不关闭程序

c# - 当我不知道类型时,我可以获取属性的 DataAnnotation 显示名称吗?

c# - ASP.net 健康监控是否与 asmx web 服务一起工作

entity-framework - EntityDeploySplit 错误 - 缺少 Microsoft.Data.Entity.Build.Tasks.dll

c# - 使用 post 将 C# 数组发送到 PHP Web 服务

c# - 如何在 Entity Framework Core 中调用带有多个表联接的存储过程?

c# - Entity Framework 4.1、Generic Repository 和 ObservableCollection

c# - 如何正确使用 EF5 的 DbContext 通过 SQL 查询获取值?

repository - Entity Framework 无法获取实体并给出 "Object' s Key Does Not Match..”错误

c# - 如何使用 ICollection<T> 在 EF5 中序列化