EF 7:如何加载一对多关系中的相关实体

2023-12-28

我有以下代码。 为什么我的导航属性(课程中的要求和要求中的课程)为空?

    public class Course : AbsEntity {
            [Key]
            public string Title { get; set; }
            public string Term { get; set; }
            public int Year { get; set; }
            public string CourseId { get; set; }        
            public double GradePercent { get; set; }        
            public string GradeLetter { get; set; }     
            public string Status { get; set; }
            public int ReqId { get; set; }

            public Requirement Requirement { get; set; }
        }

    public class Requirement : AbsEntity {
            [Key]
            public int ReqId { get; set; }
            public string ReqName { get; set; }

            public ICollection<Course> Courses { get; set; }
        }

// In DbContext
    protected override void OnModelCreating(ModelBuilder modelBuilder)
            {
                modelBuilder.Entity<Course>().HasOne(c => c.Requirement).WithMany(r => r.Courses).HasForeignKey(c => c.ReqId);
                modelBuilder.Entity<Requirement>().HasMany(r => r.Courses).WithOne(c => c.Requirement);
            }

首先,您不需要两次配置关系,只需执行一次:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
   modelBuilder.Entity<Course>().HasOne(c => c.Requirement)
                                .WithMany(r => r.Courses)
                                .HasForeignKey(c => c.ReqId);          
}

第二件事是,如果您正在执行查询并且希望延迟加载相关属性,恐怕这是不可能的。 EF 7 不支持延迟加载 https://github.com/aspnet/EntityFramework/issues/3312然而。正如你所看到的,有一个积压项目 https://github.com/aspnet/EntityFramework/issues/3797跟踪延迟加载。因此,如果您需要加载相关实体,您应该使用显式加载Include method:

 var query= ctx.Courses.Include(c=>c.Requirement).Where(...)...;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

EF 7:如何加载一对多关系中的相关实体 的相关文章

  • ScrollableControl 在整个控件周围绘制边框

    我正在构建基于的自定义用户控件ScrollableControl 现在我正在尝试在控件周围添加边框 类似于 DataGridView 的边框 我可以使用以下方法绘制边框 e Graphics TranslateTransform AutoS
  • 使用 R.Net 版本 1.5.5 创建 REngine 实例

    我正在尝试创建一个 Hello World 示例R Language using R Net版本1 5 5 从 NuGet 加载 不幸的是 我见过的在线示例都不起作用 这就是我所做的 已安装Microsoft R Open 3 2 4 增强
  • 合并多边形的高效算法

    我有一个多边形列表 在这个列表中 一些多边形重叠 或者接触其他多边形 我的任务是合并所有相互重叠或接触的多边形 我有一个union执行此操作的方法 做到这一点最有效的方法是什么 我目前能想到的是循环遍历多边形列表 检查合并列表以查看该多边形
  • 如何使用平台调用编组 void*

    我需要从 dll 中包含的 C api 调用函数 函数原型如下 int func char name void value 其中指针值的内容可以引用依赖于传递的名称的任何类型 我不确定如何设置 Dll 输入端口以正确编组此 void 我一直
  • C++ 中的反向迭代器和负跨步迭代器,在开始之前使用一个作为哨兵

    In 查看 C 反向迭代器的另一种方式 https devblogs microsoft com oldnewthing 20211112 00 p 105908雷蒙德 陈写道 C 语言的一个怪癖 你可以拥有一个指针 集合的 已过终点 但不
  • 我们需要依赖注入的接口吗?

    我有一个 ASP NET Core 应用程序 该应用程序有一些帮助程序类可以完成一些工作 每个类都有不同的签名方法 我在网上看到很多 net core 示例 它们为每个类创建接口 然后向 DI 框架注册类型 例如 public interf
  • C#:如何确定坐标是否在美国大陆?

    我正在获取坐标 纬度 经度 我想检查这些坐标是否位于美国大陆 有没有一种简单的方法可以在 C 中实现 我可以将坐标转换为 MGRS 或 UTM 谢谢 哇哦 他们专门为你准备了 http econym org uk gmap states x
  • 使用标准范围连接带有分隔符的字符串范围

    我想使用范围将跨度中包含的四个字节转换为字符串 这是输入和输出的示例 std span
  • ASP.NET MVC 中是否有嵌套母版页?

    我想知道 MVC 框架是否可以利用嵌套母版页 如果是这样 有人有一些关于如何实现这一目标的信息吗 我们经常使用嵌套母版页 以便将布局与标准包含和站点范围标记分开 如下所示 站长
  • Magento SOAP V2 API - 附加属性设置为空

    几个小时以来 我一直在尝试通过 SOAP V2 API 创建具有附加属性的产品 每当我打电话时就会添加该产品目录产品创建但我随请求发送的附加属性被设置为空 每当我不添加附加属性时 这两个属性都会设置为其默认值 因此我认为这些属性正在发送和接
  • 如何将8字节的十六进制数输入到char数组中?

    我想生成以以下开头的十六进制数字序列07060504003020100 下一个数字是0f0e0d0c0b0a0908等等按这个顺序 当我使用unsigned long long int并输出数据的前4位 这意味着0被截断 它打印706050
  • 从 ASP.NET Web API 返回 HTML

    如何从 ASP NET MVC Web API 控制器返回 HTML 我尝试了下面的代码 但由于未定义 Response Write 而出现编译错误 public class MyController ApiController HttpP
  • 更改为通用接口对性能的影响

    我使用 Visual Studio 使用 C NET 开发应用程序 ReSharper 在我的方法原型中经常建议我用更通用的类型替换输入参数的类型 例如 如果我仅在方法主体中使用带有 foreach 的列表 则使用 List 和 IEnum
  • IOS Box2D - 身体遵循基于速度波动的点数组的特定路径

    我有一个关于身体的问题 它遵循特定的路径 首先是将身体移动到目标点的方法 const float destinationControl 0 3f b2Vec2 targetPosition path counter b2Vec2 missi
  • ld: 无法对非 PE 输出文件执行 PE 操作错误

    我是操作系统编程的新手 我正在读一本书 其中给出了一个简单的内核示例 如下所示 main char video memory 0xb8000 video memory X 为了编译这个名为 kernel c 的文件 我在 Windows 7
  • 在运行时生成可执行文件

    好吧 所以我想知道如何创建一个程序 该程序创建第二个程序 就像大多数压缩程序如何创建自解压自可执行文件一样 但这不是我需要的 假设我有 2 个程序 每个都包含一个类 我将使用一个程序来修改类并用数据填充类 第二个文件将是一个也具有该类的程序
  • 使用 System.Windows.Forms.Timer.Start()/Stop() 与 Enabled = true/false

    假设我们在 Net 应用程序中使用 System Windows Forms Timer 在计时器上使用 Start 和 Stop 方法与使用 Enabled 属性之间有什么有意义的区别吗 例如 如果我们希望在进行某些处理时暂停计时器 我们
  • 如何同时正确使用管道和信号?

    我有 2 个孩子 我想将信号从孩子发送到父母 并将答案 随机数 为什么 为什么不 命名管道从父母发送到每个孩子 我有这个代码 include
  • GCC编译非常慢(文件大)

    我正在尝试编译一个大的 C 文件 专门用于 MATLAB mexing C 文件大约 20 MB 可用来自 GCC 错误跟踪器 https gcc gnu org bugzilla attachment cgi id 36632如果你想玩一
  • 编写一个转储屏幕像素的 RDP 客户端

    我想在中实现 RDP 客户端C 它能够获取屏幕所有像素的颜色值并将它们转储到文件中 我知道这在概念上与 RDP 的工作方式不同 但我的应用程序需要它 我正在尝试利用freerdp https github com FreeRDP FreeR

随机推荐

  • UWP (c#):主循环(事件循环)

    背景 我对 C 和 UWP 比较陌生 并开始开发一个应用程序以学习基础知识 我尝试寻找我认为是一个非常基本的问题的答案 但我找不到答案 可能是我的错 因此 我正在制作的应用程序连接到传输一些数据的蓝牙设备 第一个 查看页面 是蓝牙设备选择
  • 如何以与应用程序启动器相同的方式在 iPhone 上“闪耀”png?

    我想向用户展示当应用程序启动器将其方形平面 png 图像转换为正常的 闪亮 图标时会是什么样子 例如圆角和玻璃效果 Thanks 对于图标上 闪耀 的应用程序内表示 您可以使用以下代码创建一个绘制闪耀渐变的自定义 UIViewhere ht
  • 如何将变量的值传递到命令的标准输入?

    我正在编写一个应该有点安全的 shell 脚本 即不通过命令参数传递安全数据 并且最好不使用临时文件 如何将变量传递到命令的标准输入 或者 如果不可能 我如何正确使用临时文件来完成此类任务 在 Bash 中将值传递到标准输入非常简单 you
  • 测试移除方法而不调用添加方法

    我正在为管理标签对象树的类编写测试 public class Tag public virtual int Id get set public virtual string Description get set private IList
  • 用C语言编写的快速排序

    我正在阅读 K R 的 ANSI C 我遇到了 qsort 程序 我需要一点帮助 假设我有 9 个元素 索引为 0 gt 8 请阅读评论 看看我的理解是否正确 非常感谢你的努力 void qsort int v int left int r
  • 错误:编译规则集失败:“loader”上的查询参数已被删除,以支持“options”属性

    PS C Projects webpack react starter gt npm run start 电子邮件受保护 cdn cgi l email protection开始 webpack服务 模式开发 env开发 hot 端口300
  • 在.Net Core 2.1中使用FirstOrDefault时抛出System.Linq.Expressions异常

    我收到了大约 300 多个异常 这些异常在我的服务器输出中被垃圾邮件标记为 Exception thrown System ArgumentException in System Linq Expressions dll 我正在使用的查询如
  • JavaFX:多次使用线程

    我是 JavaFX 新手 我对线程有一个小问题 我可以执行它两次 但我找不到原因 这是我的代码的总结 Task
  • Android:旋转并显示文件中的图像

    我有一个非常简单的 ImageView 布局 我的应用程序打开相机 保存图像 然后在 ImageView 中显示图像BitmapFactory decodeFile 唯一的问题是它是旋转的 据我了解 a 这是由于手机的摄像头默认为横向 因此
  • wpf 中的 ItemsPanelTemplate 选择器?

    我需要根据控件上的依赖属性设置列表框的 ItemsPanelTemplate 属性 如何使用 DataTemplateSelector 来做到这一点 我有类似的东西
  • 如何将 XML Word 文档转换为 DOCX?

    我收到了一系列文件夹 其中包含大量 xml 格式的 Word 文档 它们每个都包含一些 VBA 代码 但所有代码都已经运行过 所以我不需要保留它 我需要打印每个文件夹中的所有文件 但由于网络上 XML 文件的限制 我无法简单地从 Windo
  • FIELDDATA 数据太大

    我打开 kibana 并进行搜索 然后收到分片失败的错误 我查看了 elasticsearch log 文件 看到了这个错误 org elasticsearch common breaker CircuitBreakingException
  • 使用 gnuplot 的向量场

    如何绘制矢量场 其中每个点 x y 的方向由下式给出tangent alpha f x y 据我所知 gnuplot 只能在从文件读取数据时绘制向量场 您的文件必须有 4 列 x y deltax 和 delta y 然后 gnuplot
  • Unity aab 不符合 Google Play 64 位要求

    我有一个 Unity 项目 正在从 APK 切换到 AAB 应用程序包 以前 当我将其构建为 APK 时 Google Play 控制台告诉我该 APK 兼容 64 位 现在我正在构建 aab 我收到警告 此版本不符合 Google Pla
  • 有趣的 SQL 连接日期之间的日期

    首先 感谢任何帮助我解决这个问题的人 我使用的是 SQL 2005 但如果 05 中没有可用的解决方案 可以使用 2008 我有一行数据 如下所示 select from mySPtable myPK Area RequestType St
  • 可靠地显示 matplotlib(0.99 到 1.3.1)数字而不会阻塞

    有没有办法在 Python 2 65 Matplotlib 0 99 中显示 pyplot 图 而不锁定其他所有内容 我有一个带有 Pmw GUI 的程序 在 Python 2 75 和 Matplotlib 1 3 1 上运行 在 Win
  • AppCertDlls:病毒导致 Win32 上的进程创建速度减慢

    大约两个月来 我在 Windows XP Home SP3 上遭受了严重的进程创建惩罚 这个问题在创建大量进程的任务中最为明显且烦人 例如 shell 脚本 顺便说一句 Cygwin 上的 bash 脚本 Makefile 或解压 IzPa
  • 增强导入的打字稿界面

    我正在使用一个包 ko 组件路由器 https github com Profiscience ko component router 具有以下 简明 类型定义 索引 d ts export IContext Context from co
  • Angular 2 中 JavaScript 堆内存不足

    我正在使用 Angular CLI 请检查我的 CLI 信息 angular cli 1 2 1 node 6 10 0 os win32 x64 angular animations 4 1 1 angular common 4 0 0
  • EF 7:如何加载一对多关系中的相关实体

    我有以下代码 为什么我的导航属性 课程中的要求和要求中的课程 为空 public class Course AbsEntity Key public string Title get set public string Term get s