使用实体框架加入视图时使用 .Include() [重复]

2024-01-27

我使用索引视图,它是一个没有任何关系的实体(与我的表实体的关系会更好,但这似乎几乎不可能实现)。该视图由 4 个 FK 组成,它们共同构成 PK:

PortalID
CategoryID
BranchID
CompanyID

现在我加入这个视图来选择一组这样的公司:

var companies = (from c in database.Companies.FindAll().Include("City")
                 join l in database.CompanyList.FindAll() on c.ID equals l.CompanyID
                 where l.PortalID == 9 && l.BranchID == 1597
                 select c).Take(10);

实体公司与表城市(CityID、城市)有关联,我想将其包含在内并完美运行。但是,当我加入视图时,.Include() 被完全忽略,因此导致查询没有连接到城市表。

正如您可能已经得出的结论,我使用存储库模式,FindAll() 返回一个 IQueryable,并且我手动将 Include 扩展添加到 IQueryable,如下所示:

public static IQueryable<T> Include<T>(this IQueryable<T> sequence, string path) {
    var objectQuery = sequence as ObjectQuery<T>;
    if (objectQuery != null)
        return objectQuery.Include(path);

    return sequence;
}

我已经彻底测试了这个扩展并且可以正常工作。

现在我的问题是,为什么它忽略最终表达式树中的 Include 操作以及如何防止它这样做?

UPDATE:
我从以下链接得到了我的解决方案:http://blogs.msdn.com/b/alexj/archive/2009/06/02/tip-22-how-to-make-include-really-include.aspx http://blogs.msdn.com/b/alexj/archive/2009/06/02/tip-22-how-to-make-include-really-include.aspx

这说明我需要像这样重写我的查询:

var companies = (from c in database.Companies.GetAll()
                 join l in database.CompanyList.GetAll() on c.ID equals l.CompanyID
                 where l.PortalID == 9 && l.BranchID == 1597
                 select c).Include("City").Take(10);

您的问题的答案为什么它忽略最终表达式中的 Include 操作?因为当你加入公司表与公司名录此连接操作的结果实体类型是新类型,仅包含两种实体类型的原始类型属性,但如果您想包含城市,则必须将结果类型转换为公司类型,然后调用此转换类型的 include City。

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

使用实体框架加入视图时使用 .Include() [重复] 的相关文章

  • 如何设置 web.config 文件以显示完整的错误消息

    我在 Windows Azure 上部署了 MVC 3 应用程序 但现在当我通过请求时staging url它告诉我 很抱歉 在执行您的要求时发生了一个错误 现在我想查看完整的错误消息 默认情况下由于某些安全原因它会隐藏该消息 我知道我们可
  • SQL - 我需要将总值划分为另一个表中的多行

    假设我在 SQL Server 2008 中有以下表 学校桌 School Id Course Id Total Students 1 Acct101 150 1 Acct102 100 2 Acct101 110 2 Acct102 13
  • C++ 中的反向迭代器和负跨步迭代器,在开始之前使用一个作为哨兵

    In 查看 C 反向迭代器的另一种方式 https devblogs microsoft com oldnewthing 20211112 00 p 105908雷蒙德 陈写道 C 语言的一个怪癖 你可以拥有一个指针 集合的 已过终点 但不
  • 从 C# 访问 COM vtable

    C 中有没有办法访问 COM 对象的虚拟方法表以获取函数的地址 经过大量搜索和拼凑不同的部分解决方案后 我弄清楚了如何做到这一点 首先 您需要为您尝试访问的对象定义 COM 组件类 ComImport Guid InterfaceType
  • FxCop 和 GAC 疯狂

    当我尝试分析依赖于模式和实践 企业库数据 以及其他 2 0 0 0 的项目时使用 FxCop FxCop 抱怨它不能 定位程序集引用 即使正在分析的应用程序 dll 是根据其编译的此版本及其在 GAC 中 如果我浏览到 GAC 尝试选择相同
  • 如何更改 PostgreSQL 表中列的数据类型?

    在 PostgreSQL 交互式终端中输入以下命令会导致错误 ALTER TABLE tbl name ALTER COLUMN col name varchar 11 更改列的数据类型的正确命令是什么 请参阅此处的文档 http www
  • 使用标准范围连接带有分隔符的字符串范围

    我想使用范围将跨度中包含的四个字节转换为字符串 这是输入和输出的示例 std span
  • 如何检查我的程序是否有数据通过管道传输到其中

    我正在编写一个应该通过标准输入读取输入的程序 所以我有以下结构 FILE fp stdin 但是 如果用户没有将任何内容通过管道传输到程序中 这就会挂起 我如何检查用户是否确实将数据通过管道传输到我的程序中 例如 gunzip c file
  • 使用 itextSharp 5.3.3 对 Pdf 文档进行数字签名和验证

    我正在尝试使用 iTextSharp 5 3 3 在服务器 c 上进行数字签名和验证 pdf 文档 我使用 DigiSign 在线工具 生成了 Pfx 文件 然后使用 Windows 生成证书 cer 文件
  • 更改为通用接口对性能的影响

    我使用 Visual Studio 使用 C NET 开发应用程序 ReSharper 在我的方法原型中经常建议我用更通用的类型替换输入参数的类型 例如 如果我仅在方法主体中使用带有 foreach 的列表 则使用 List 和 IEnum
  • 在另一个类中使用一个类对象?

    我正在用 c 制作应用程序 在该应用程序中 我有一个类DataCapture cs 在同一个应用程序中 我有另一个类Listner cs 在 Listner cs 类中 我想使用以下对象DataCapture cs不创建新对象DataCap
  • 通用 lambda 的数量

    可以通过访问非泛型 lambda 的数量来推断其数量operator template
  • 在运行时生成可执行文件

    好吧 所以我想知道如何创建一个程序 该程序创建第二个程序 就像大多数压缩程序如何创建自解压自可执行文件一样 但这不是我需要的 假设我有 2 个程序 每个都包含一个类 我将使用一个程序来修改类并用数据填充类 第二个文件将是一个也具有该类的程序
  • 如何使用 C# 以编程方式识别对方法的引用数量

    我最近继承了需要一些修剪和清理的 C 控制台应用程序 长话短说 该应用程序由一个包含超过 110 000 行代码的类组成 是的 单个类中有超过 110 000 行 当然 该应用程序是我们业务的核心 全天候运行更新动态网站上使用的数据 尽管我
  • 使用 System.Windows.Forms.Timer.Start()/Stop() 与 Enabled = true/false

    假设我们在 Net 应用程序中使用 System Windows Forms Timer 在计时器上使用 Start 和 Stop 方法与使用 Enabled 属性之间有什么有意义的区别吗 例如 如果我们希望在进行某些处理时暂停计时器 我们
  • 如何使用 XmlSerializer 生成标记前缀

    我想使用 XmlSerializer 生成以下内容
  • 在 MySQL 查询中一起使用 DISTINCT 和 COUNT

    这样的事情可能吗 SELECT DISTINCT COUNT productId WHERE keyword keyword 我想要的是获取与关键字关联的唯一产品 ID 的数量 同一产品可能与一个关键字关联两次或多次 但我希望每个产品 ID
  • 您可以从 AuthorizeAttribute 返回 HTTP 响应而不引发异常吗?

    我在各种控制器上使用 AuthorizeAttribute 可能需要根据请求本身的某些属性返回 403 或 429 请求过多 我完全在自定义 OnAuthorization 实现中实现了它 然后在必要时抛出一个带有适当响应代码的新 Http
  • 偏专业化朋友声明

    在下面的代码中 template
  • SQL 几何 VS 小数(8,6) 纬度、经度性能

    我正在研究选择与给定坐标一定距离内的最近点的性能 选项是以太使用两个decimal 8 6 纬度 长列或单列geography列并与之合作 我只感兴趣哪个更快 TL DR地理大约快 10 倍 好的 我已经设置了测试 几张桌子 一张id la

随机推荐

  • 将二进制编码为音频 python 或 C

    使用C或Python 首选Python 我如何将二进制文件编码为音频 然后通过耳机插孔输出 以及如何使用麦克风插孔的输入将音频解码回二进制 到目前为止我已经学会了如何使用 python 将文本文件转换为二进制文件 这与 RTTY 通信类似
  • 在 WinCrypt 中使用 CertCreateCertificateContext 时遇到 ASN1 错误标记值

    我在这里做错了什么 创建证书上下文时 我不断收到错误 0x8009310b 满足 ASN1 错误标记值 我知道我正在测试的证书很好 我使用 DER Base 64 和 P7B 格式从中间存储中导出它 三种情况都失败 int tmain in
  • 在 UIImageView 中对 UIImage 进行向上和向下动画(就像悬停一样)循环

    您好 我有一个图像 我想上下移动 向上 10 像素和向下 10 像素 以便我的图像看起来悬停 我怎样才能用简单的动画来做到这一点非常感谢 您可以使用核心动画来对视图层的位置进行动画处理 如果您将动画配置为additive您不必费心计算新的绝
  • 如何将开发人员工具窗口恢复到正常配置?

    我有 Edge 95 0 1020 53 在 Win 10 Pro 21H1 中 我不是技术人员 没有什么具体原因 我打开了开发者工具 大约有 10 年没有打开过 打开后 我看到了我见过很多次的配置 使用整个窗口四分之三的父网页位于左侧 这
  • 在 Swashbuckle 中启用 Oauth2 客户端凭据流

    我使用 IdentityServer3 通过客户端凭据授予来保护 Web API 对于文档 我使用 Swashbuckle 但无法弄清楚如何在 SwaggerConfig 中为客户端凭据 应用程序 流程启用 Oauth2 任何帮助 将不胜感
  • Winforms/C#:在两次运行之间存储/检索(保留)文本框的内容

    有没有一种最简单的方法来简单地告诉 Winforms 主要是 TextBoxes 保留其所有内容G 到一个文件 而无需我循环遍历所有控件 我在 WPF 应用程序中看到了这一点 但我不知道 而且 Google 没有发现任何内容 是否有开箱即用
  • 检查python中目录的权限

    我想要一个给定目录的python程序 它将返回该目录中具有775的所有目录 rwxrwxr x 权限 thanks 这两个答案都不会重复 尽管尚不完全清楚这就是OP想要的 这是一种递归方法 未经测试 但您明白了 import os impo
  • 在 tkinter 中,有没有办法改变重叠画布的绘制堆栈顺序?

    问题 使用 Python 的 tkinter 我尝试通过扩展来创建自定义按钮和其他小部件画布小部件 http effbot org tkinterbook canvas htm when to use 当用户与它们交互时 如何更改在顶部绘制
  • Content-type 中的边界被 FormHttpMessageConverter 覆盖

    我在 Spring 框架中使用 FormHttpMessageConverter 为了通过restTemplate发送文件 我在项目中添加了FormHttpMessageConverter 问题是服务器获取文件询问我的加密内容类型的字符串
  • 如何在 Azure DevOps yaml 管道中的每个循环中使用变量

    我的 Azure DevOps 管道中有一个 PowerShell 脚本 task PowerShell 2 displayName Get records inputs targetType inline script lt gt rec
  • OpenID 的最佳 Coldfusion 库 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 用于多图像上传的 Django Rest 框架

    我在使用 Django Rest Framework 上传多个图像时遇到了困难 我想要的是 有一个租赁表 用户可以在其中一次填写有关租赁信息以及多个图像 图像可以是厨房 客厅 浴室等 为了这笔租金 他们想登记 一份租金可以有多个图像 因此我
  • 使用 PHP 读取 JSON 数据 [重复]

    这个问题在这里已经有答案了 Solr 以以下 JSON 格式返回响应 responseHeader status 0 QTime 2 params indent on start 0 q wt json version 2 2 rows 1
  • 格式化 Netbeans 的大括号 [重复]

    这个问题在这里已经有答案了 我一直在查看 Netbeans 的选项 但找不到更改大括号默认位置的方法 public class foo to this public class foo Look in Tools gt Options gt
  • 5 规则(针对构造函数和析构函数)是否已经过时?

    5 规则指出 如果一个类具有用户声明的析构函数 复制构造函数 复制赋值构造函数 移动构造函数或移动赋值构造函数 则它必须具有其他 4 个 但今天我突然意识到 什么时候需要用户定义的析构函数 复制构造函数 复制赋值构造函数 移动构造函数或移动
  • Java Quartz 内存泄漏消息

    我的网络应用程序中有一个quartz 工作 它是由servlet 启动的 当我重新部署我的应用程序时 我收到以下消息 DefaultQuartzScheduler Worker 5 but has failed to stop it Thi
  • 如何向字符串添加双引号字符?

    如何向给定字符串添加双引号字符 local str foo 我怎样才能得到字符串 foo 其中字符串包含前导和尾随引号 您可以将引号粘贴到字符串上 local str foo print foo gt foo print foo gt fo
  • 角度 6 元素布尔输入参数

    我正在构建一个角元素并向其传递一些输入参数 我可以很好地传递一些字符串输入参数 ikrId 和环境工作完美 但很难通过角元素 将 showTitle 属性从父角度组件传递给组件效果很好 这是组件片段 export class MyCompo
  • 网络线程阻塞 GUI

    我正在研究 C 和 WPF 我正在开发一个应处理 LAN 上的数据传输的应用程序 特别是 每次传输都会显示进度条 如果是下载 则为绿色 如果是上传 则为红色 最初 我做了一些虚构的尝试 其中我模拟了传输 网络线程被停用 因此 以编程方式填充
  • 使用实体框架加入视图时使用 .Include() [重复]

    这个问题在这里已经有答案了 我使用索引视图 它是一个没有任何关系的实体 与我的表实体的关系会更好 但这似乎几乎不可能实现 该视图由 4 个 FK 组成 它们共同构成 PK PortalID CategoryID BranchID Compa