我可以通过委托给 EF 中的存储过程来延迟加载导航属性吗?

2024-04-23

我有以下客户类别:

public class Customer 
{
    public long Id { get; set; }

    public virtual ICollection<Order> Orders { get; set; }
}

我的数据库有客户和订单表,但没有外键关系。使用存储过程获取客户的订单,该存储过程获取客户 ID 并返回订单行。我无法修改数据库。

我知道如何从实体框架调用存储过程,但是,是否可以使用流畅的 API 配置 DbContext,以便访问客户对象的 Orders 集合将通过调用存储过程来延迟加载实体?

我正在使用最新版本的 EF。


不,你不能。延迟加载在 EF 创建的代理对象中进行编码(如果可能),无法拦截/配置代理的生成方式。

甚至不可能映射 a 的默认读取操作DbSet到存储过程。这始终是一个询问。仅有的创建、更新和删除可以映射到存储过程 https://msdn.microsoft.com/en-us/data/dn468673.aspx.

原因(我认为)是存储过程不可组合,因此如果在复杂的 LINQ 查询中将一个实体映射到存储过程(用于读取),则不可能将查询转换为一个 SQL 语句。

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

我可以通过委托给 EF 中的存储过程来延迟加载导航属性吗? 的相关文章

随机推荐

  • Android 的 BitmapFactory 解码函数

    我遇到问题 decodeStream功能 File cacheMap new File context getCacheDir test GIF if cacheMap exist FileInputStream is new FileIn
  • 并行调用一系列 Promise,但按顺序解决它们,而不等待其他 Promise 解决

    我有一系列的承诺 我想并行调用 但同步解析 我编写了这段代码来完成所需的任务 但是 我需要创建自己的对象QueryablePromise包裹原生Promise我可以同步检查它的已解决状态 有没有更好的方法来完成这个不需要特殊对象的任务 请注
  • 将信息添加到数据帧的 if 条件

    我需要创建一个包含以下列的数据框 WEB Country Organisation 我从网站中提取这些信息 但是 有些网站的网站上没有任何信息 这导致我在更新数据框时遇到一些问题 不幸的是 该代码一次只能运行一个网站 否则会出现验证码 请参
  • Latex:列表前后的垂直空间

    我无法摆脱列表前后的垂直空间 我有如下代码 begin list setlength itemsep 0pt setlength parskip 0pt setlength parsep 0pt item First item item S
  • 正则表达式匹配引号外的文本等

    1 我想出了这个正则表达式来匹配所有引用的字符串 看起来效果很好 问题是如何匹配不在引号内的文本 不知怎的 逆负负 我阅读了文档并 1 不起作用 嗯 如果第一个正则表达式有效 我将使用它从输入字符串中删除所有带引号的字符串 然后 您将剩下的
  • 如何编写 Linq 表达式来对一组实体调用 OrderBy?

    有人可以解释构建表达式的语法 该表达式将按实体上用户指定的属性进行排序吗 这篇 MSDN 文章对提供帮助有很大帮助 但它涉及一个简单的字符串列表 我的数据集包含我自己的自定义对象 http msdn microsoft com en us
  • C++ 将三个 char* 字符串连接在一起[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 询问代码的问题必须对所解决的问题表现出最低限度的了解 包括尝试的解决方案 为什么不起作用以及预期结果 也可以看看 Stack Overfl
  • 从表单提交获取 JSON 响应

    我不是前端开发人员 并且我花了相当多的时间尝试这样做 希望你们能帮助我 我有一个将文件发送到服务器中的 API 的表单 如下所示
  • 将 R data.frame 转换为 Javascript 数组

    我想将数据框的某些列保存为特定格式 JavaScript 格式 我尝试过使用toJSON from rjson包但这不起作用 我的结果应该是这样的 http leaflet github io Leaflet markercluster e
  • 如何折叠ListView中的所有Group Expander?

    我有一个ListView with a GroupStyle在上面 在风格上我有一个Expander 我想用一个ContextMenu in the ListView一键折叠和展开所有组 我想通过单击扩展器来展开每个组 我怎样才能获得组 然
  • 无法安装 matplotlib

    当我在 64 位 Windows 中安装 matplotlib 时 它需要 numpy 然后我安装了 numpy 并再次安装了 matplotlib 然后它说 numpy 1 7 1 freetype2 found but unknown
  • Perforce:如何删除 p4v 拒绝删除的变更列表?

    使用 perforce 一段时间后 我留下了许多尚未完成的变更列表 为了清理 我想摆脱其中的一部分 所以这就是让事情变得复杂的原因 对于更改的子集 客户端的主机已更改 某些更改包含搁置的文件 更改列表中的文件可能会被删除或移动 当更改列表满
  • iOS——codeSense 中自动合成属性的“添加”方法

    我刚刚创建了一个具有以下属性的 iOS 类 property nonatomic strong NSString foo property nonatomic strong NSObject bar property nonatomic C
  • 如何忽略多容器 Pod 中容器的故障?

    我有一个多容器应用程序 app sidecar 两个容器都应该一直处于活动状态 但 sidecar 并不是那么重要 Sidecar 依赖于外部资源 如果该资源不可用 Sidecar 就会崩溃 它会导致整个吊舱瘫痪 Kubernetes 尝试
  • VirtualBox 是否可以使用 python3 绑定?

    我正在尝试使用 VirtualBox 的 python 3 绑定 但似乎存在损坏的依赖关系 我觉得很奇怪的是 在人们遇到这个问题的四年里 这个问题还没有得到解决 也许我错过了一些明显的东西 众所周知它会发生 我已经通过操作系统包管理器安装了
  • javax.mail.MessagingException:无法连接到 SMTP 主机:<主机名> 端口:25 响应:554

    我正在尝试使用 java mail api 发送邮件 我的 smtp 服务器是 ibm 服务器 我面临这个异常 javax mail MessagingException Could not connect to SMTP host
  • 如何让 Cargo 显示哪些文件导致重建?

    我在用cargo maturin and pytest构建混合 Python Rust 项目 在开发过程中 我经常循环使用命令 cargo test p mypkg release maturin develop release pytho
  • 如何从 fresco(facebook 的 android lib)中排除 arm64-v8a 目录

    正如你所看到的 Fresco有arm64 v8a目录 但我不想要它 我应该在build gradle中写什么 compile com facebook fresco fresco 0 5 3 exclude group com androi
  • Android 开源人脸识别 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 使用Android 人脸识别有哪些开源选项 以下是我在人脸识别库上找到的一些链接 Android s F
  • 我可以通过委托给 EF 中的存储过程来延迟加载导航属性吗?

    我有以下客户类别 public class Customer public long Id get set public virtual ICollection