如何使用实体框架自动包含所有底层导航属性

2024-04-10

场景:我想向数据库添加一个具有导航属性和that实体具有导航属性......等等。基本上,数据库中的表都是相互连接的——所有表都是相互连接的。

我使用 EF4.3 和上下文/请求模式,所以我不想启用延迟加载;加载我需要的实体会花费太多时间。到目前为止,我了解到除了使用这样的 include 方法之外,没有其他方法可以做到这一点:

 context.Set<TEntity>().include("navproperty1").include("navproperty1.navproperty1.1")... and so on.

这样可维护性会很差,而且代码很多,但是如果我不想为每个实体类型手动编写所有包含内容,还有其他方法吗?


这里有很多问题。我将尝试解决每一点。

首先,延迟加载并不总是更快。特别是如果您正在加载所有关系。

其次,始终避免“魔弦”。我不知道是否Include接收 lambda 表达式(它是 IQueryable 扩展)的方法可用于 EF 4.3。如果不是,您应该自己实现就像这里所示的 http://www.thomaslevesque.com/2010/10/03/entity-framework-using-include-with-lambda-expressions/并使用:

context.Set<TEntity>().include(t => t.NavProp)

“A”实体与“B”实体具有 1 : n 关系,但“B”实体具有 n : m 与“C”实体的关系。如果我不将“C”包含到“A”中,然后 尝试调用 context.SaveChanges() 那么所有数据都会丢失 “B”和“C”

我实在不知道你的意思。但是,如果您想选择属于列表中某个项目的子导航属性,您应该在 EF 5 中使用它:(不确定它在 4.3 中是否有效)

context.Set<TEntity>().Include(t => t.Collection.Select(c => c.SubProp))

还可以找到其他的表达方式here http://msdn.microsoft.com/en-us/data/jj574232.aspx

如果您澄清那句话,也许我可以提供更多帮助。

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

如何使用实体框架自动包含所有底层导航属性 的相关文章

随机推荐

  • 使用 getElementsByName() 设置选项值

    拥有这个字段集 fieldset legend death legend fieldset
  • 如何从 javascript 中的 API 调用返回值到 React 组件

    我似乎无法将 javascript 中此 API 调用的值返回到我的 React 组件 我有一个调用 API 的 java 脚本文件 在js文件中 返回结果 但是当我在react组件中调用useEffect中的js函数时 它返回未定义 ex
  • ctags 多行 C 函数原型

    ctags 有没有办法处理 C 中的多行函数原型 我四处寻找 fields S应该做多行原型 但我无法让它工作 ctags x c kinds pf fields S file file int foo int x int y ctags
  • django QueryDict 仅返回列表的最后一个值

    使用 django 1 8 我观察到一些奇怪的事情 这是我的 JavaScript function form submit var form form1 id request post this attr action form seri
  • 面向对象的 CSS:这重要吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我刚刚发现这个有趣的演示 http www slideshare net stubbornella object oriented css ty
  • 为什么React需要jsdom来测试?

    在为 React 组件编写测试时 您必须将它们渲染到 DOM 中 以便断言它们的正确性 例如 如果您想测试某个类是否已添加到给定状态的节点 则必须渲染到 DOM 节点 然后通过普通 DOM API 检查该 DOM 节点 问题是 考虑到 Re
  • 使用 C#、LINQ - 想要获取列名和数据值

    我想以一种相当通用的方式显示一行的内容 我将针对几个不同的表使用这种技术 输出将是纯文本 在 RichTextBox 中 如下所示 表名 PROPNUM xxxxxx 销售日期 月 日 年 最后一列 最后一个值 a 我知道每个表的列名 但真
  • 在Vue组件模板中的元素属性中组合字符串和变量

    我有一个表格 其中有 1 个客户或 2 个客户 我创建了一个用于选择计数的组件 另一个用于显示客户端信息表单的组件 因此 如果有 2 个客户端 使用 v for 则有 2 个表单 div div
  • 如何使用 SolrJ 获取突出显示的片段?

    我正在将我的应用程序从 Lucene 迁移到 Solr Solr 可以更好地处理突出显示 但是如果我搜索关键字 city 我会期望得到如下响应 id fdc3833a 0e4f 4314 ba8c title Paris is a beau
  • 异常模块的阴谋导入错误

    我到处搜索都找不到解决这个问题的方法 我正在尝试导入plotly在 Jupyter Notebook 中使用以下代码并分别收到以下错误 Code import sys print sys path sys path append usr l
  • C# 4.0 中的“动态”类型有何用途?

    C 4 0 引入了一种称为 动态 的新类型 听起来不错 但是程序员会用它做什么呢 有没有什么情况可以挽救局面 The dynamic添加了关键字以及 C 4 0 的许多其他新功能 以便更轻松地与具有不同 API 的其他运行时中或来自其他运行
  • Javascript 日期加 2 周(14 天)

    我用它来获取日期 var currentTime new Date var month currentTime getMonth 1 var day currentTime getDate var year currentTime getF
  • 即使文件存在于我的 Linux 上,php file_exists 也会返回 false

    这个问题已经被问过很多次了 但我找到的答案都没有帮助我 我正在尝试让 php file exists 工作 它起作用的唯一情况是 php 文件与要使用 file exist 的文件位于同一目录中并且仅使用文件名 即不包括路径 但这不是随之而
  • 开玩笑嘲笑测试之间出血,重置并不能解决问题

    测试两个模块 helper它利用render 这是可能的render扔 所以我处理它helper 我想要进行测试以确保其按预期工作 当我最初编写测试时 我在测试本身中编写了该测试所需的内容 包括模拟 使用jest doMock 一旦所有测试
  • Android 或 Java 类命名带有 $ 符号

    我正在审查某个项目 发现有许多类具有相同的名称 但末尾带有美元 符号 数字不断增加 例如 Class java Class 1 java Class 2 java Class n java OtherClass java OtherClas
  • 简单的 TabView 在 iOS 16 中崩溃

    有一个奇怪的崩溃 只发生在 iOS 16 中 当我尝试创建一个TabView使用页面样式 当数组为空时它会崩溃 但它在 iOS 15 中运行得很好 这是 iOS 16 的错误吗 Xcode版本 版本 14 0 14A309 iOS版本 16
  • JavaScript 在点击时显示和隐藏元素

    请原谅我的无知 我不知道我在做什么 但我正在努力 我试图通过搜索来找出它 但它只在 jQuery 中产生了一个功能结果 由于这是一个很小的部分 我认为最好只使用普通的 JavaScript 而不是加载整个 jQuery 库 有谁知道我如何
  • 使用 git bash 运行 bash 脚本时出现“未找到自由命令”

    我想在 bash 脚本中显示服务器负载 磁盘空间 使用情况和内存使用情况 但当我尝试时 echo Memory usage memory usage free m awk NR 2 printf Memory Usage s sMB 2f
  • ios CoreBluetooth[警告]未知错误:1309

    运行我正在开发的蓝牙应用程序时 我偶尔会在控制台上收到消息 CoreBluetooth 警告 未知错误 1309 即使该消息指出这是警告 它也会停止应用程序的执行 我已经能够通过关闭蓝牙设置然后重新打开来解决此问题 谁能告诉我导致此问题的原
  • 如何使用实体框架自动包含所有底层导航属性

    场景 我想向数据库添加一个具有导航属性和that实体具有导航属性 等等 基本上 数据库中的表都是相互连接的 所有表都是相互连接的 我使用 EF4 3 和上下文 请求模式 所以我不想启用延迟加载 加载我需要的实体会花费太多时间 到目前为止 我