包含相同对象列表的对象的实体框架映射

2024-02-04

目前在我的代码中我正在做这样的事情

public class Subject
{
    private List<Subject> _prerequisites;
}

一个科目可以有许多先决条件(也是科目),并且科目可以是许多科目的先决条件。

我们最初使用类型化数据集将数据保存到数据库中,我们的表如下所示:

我们现在希望从使用类型化数据集迁移到实体框架,但我不确定如何创建映射。从数据库生成 EF 并没有真正起作用,因为它只是删除每个表并使用外键作为导航属性。据我了解,EF 不需要另一个实体来实现多对多关系。如果有人可以提供帮助,那就太好了!干杯!


弄清楚了。需要在继承 DbContext 的类的 OnModelCreating 方法中重写默认的模型构建。

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Entity<Subject>().
        HasMany(m => m.Prerequisites).
        WithMany()
        .Map(m =>
            {
                m.ToTable("SubjectPrerequisite");
                m.MapLeftKey("SubjectId");
                m.MapRightKey("PrerequisiteId");
            });
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

包含相同对象列表的对象的实体框架映射 的相关文章

随机推荐

  • Typescript 在 Pick 实现中进行了扩展

    这是 Typescript 的基本实现Pick实用程序类型来自本教程 https learntypescript dev 09 l3 condition utility types type ObjectWithKeys
  • Angular 2 / 4 / 5 - 提前编译如何

    我正在尝试按照本指南引导我的 Angular 2 RC5 应用程序https angular io docs ts latest guide ngmodule html https angular io docs ts latest gui
  • JSF 中的 class 和 styleClass 属性有什么区别?

    我发现 在 JSF 中 大多数标准组件都映射到 HTML 标签 例如
  • 拆分数据库是合法的安全措施吗?

    当我公司以前的开发人员必须存储敏感的用户数据 例如医疗记录 时 他们做了以下操作 我怀疑它的优点 有些数据被认为是 不敏感 用户登录 个人资料信息 和 敏感 用户医疗记录 共有三个数据库 中的不敏感数据A 医疗记录在B 以及之间的映射A a
  • 使用 Web 服务将报价导入 vtiger crm

    我需要将报价导入到vtiger 我发现可以使用 vtiger Web 服务 API 来完成 我找到了参考手册 https wiki vtiger com archives index php vtiger510 Webservice ref
  • 在 shell 脚本中转义单引号

    我需要转义变量中的单引号 ssh command file hostname server setup date Y m d tar gz cd var tar zcvf file ini wc l xargs printf Num fil
  • 如何在不重新启动 MySQL 的情况下刷新 Performance_schema 统计信息?

    我知道性能模式中的统计数据在 MySQL 重新启动后不会持续存在 我想在不重新启动 MySQL 的情况下刷新所有统计信息 有什么办法可以做到吗 Thanks 截断每个单独的表更容易的是调用以下过程 CALL sys ps truncate
  • 如何编写可读的 JavaScript

    在 JavaScript 中 代码格式化的标准规则似乎并没有解决这个问题 你最终还是会陷入混乱 到处都是 我不相信我什至不知道正确缩进声明为其他函数的参数的匿名函数的既定规则 简而言之 我在阅读自己的 JavaScript 时遇到了困难 而
  • 如何在 Oracle 包中执行私有过程?

    这是我第一次尝试创建一个包 所以我一定错过了一些非常明显的东西 我在谷歌上搜索过的东西似乎都不认为值得一提 显然 如果包体中有未包含在规范部分中的过程 那么这些过程就是私有的 我遇到的问题是我似乎不知道如何参考那些私人包裹一旦我做好了 而且
  • 实体包装器 - 自定义

    我想找到一种解决方法来完成一个简单的解决方案 以便通过 EF 自动执行某些操作 我需要的是在保存和检索过程中接管以修改查询结果 但此类将能够使其适用于任何类型的实体 示例 我有一个 MyTestDb 因此 在我的 C 项目中 我创建了一个新
  • 无法更改 Android 中的导航抽屉图标颜色

    好吧 我知道这是一个微不足道的问题 但由于某种原因它对我不起作用 我已经做了很多其他答案中建议的事情 但都是徒劳的 我的可绘制文件夹有白色图标 我什至尝试从 styles xml 更改它 但这也不起作用 我正在我的棒棒糖设备上测试它 任何帮
  • 使用 `` 或 `@import` 包含 CSS - 哪个更好?

    我有一个网站 并且有多个用于打印 电视 屏幕 手持设备等的 css 样式表 我想知道这些方法中哪一种更好用 性能 可用 性等 or
  • 正则表达式问题组名称重新定义?

    所以我有这个正则表达式 s P
  • 线串长度(以英里为单位)

    我将运行数据表示为 Shapely LineStrings 其中 LineString 中的每个点都是一个坐标 我试图计算出以英里为单位的 LineString 长度 我知道 LineString 有一个length方法 但我不知道结果是什
  • 从 Spring Boot jar 文件运行非主类

    我有一个 spring boot jar 文件 里面有一个清单文件 如下所示 Manifest Version 1 0 Implementation Title myApp Implementation Version 0 1 Built
  • delphi中如何分割字符串

    我只需要分割一个字符串 例如 STANS Payment chk 1 1210 000进入一个基于数组 字符串列表中的结果将是 STANS Payment chk 1 1210 000 创建一个TStringList并将逗号分隔的字符串分配
  • 从订单示例构建订单簿[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我正在寻找从订单构造订单簿的代码 例如 如果订单是 side price quantity buy 100 1 buy 101 10 buy
  • gcc中有128位整数吗?

    我想要一个 128 位整数 因为我想存储两个 64 位数字相乘的结果 gcc 4 4及以上版本有这样的东西吗 对于 C23 之前的 GCC 原始 128 位整数类型是仅在 64 位目标上可用 因此即使您已经检测到最新的 GCC 版本 您也需
  • 在事件处理程序中调用自定义挂钩

    我有一个名为的自定义钩子useFetchMyApi将 fetch 调用包装到 API 端点 函数钩子接受一个参数 并将其包含在帖子正文中 数据数组输出取决于钩子参数 在UI上 App组件调用useFetchMyApi一次 按钮单击处理程序将
  • 包含相同对象列表的对象的实体框架映射

    目前在我的代码中我正在做这样的事情 public class Subject private List