LINQ 到实体转换问题

2023-12-09

我正在尝试以通用方式过滤 LINQ-to-entities 查询,但我不断收到错误。这是一段代码:

private IQueryable<T> FilterDeletedEntities<T>(IQueryable<T> entities)
{
    if (typeof(IDeletable).IsAssignableFrom(typeof(T)))
    {
        var deletableEntities = (IQueryable<IDeletable>)entities;
        deletableEntities = deletableEntities.Where(entity => !entity.Deleted);
        entities = (IQueryable<T>)deletableEntities;
    }
    return entities;
}

基本上,我试图过滤掉已删除的实体(即“已删除”字段为“true”),当且仅当该实体是 IDeletable(即它具有“已删除”字段)时。问题是我无法将 IQueryable 转换回 IQueryable。

有想法该怎么解决这个吗?在你问之前:是的,这个方法has是通用的。

提前致谢!


但你可以使用Cast<T>()来转换它。

 entities = deletableEntities.Cast<T>();

您也可以使用它来区分 IDeletable,例如,

private IEnumerable<T> FilterDeletedEntities<T>(IQueryable<T> entities)
{
    if (typeof(IDeletable).IsAssignableFrom(typeof(T)))
    {
        return entities.ToList()
                       .Cast<IDeletable>()
                       .Where( e => !e.Deleted )
                       .Cast<T>();
    }
    return entities.ToList();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LINQ 到实体转换问题 的相关文章

  • 以相反的顺序迭代可变参数模板参数

    如果我手动反转传递给它的模板参数的顺序 以下代码将起作用 template
  • 切换图片框可见性 C#

    为什么图片框控件的可见性属性在这里不起作用 我最初将它们设置为 false 以便在屏幕加载时它们不可见 但后来我想切换这个 我已完成以下操作 但似乎不起作用 这是一个 Windows 窗体应用程序 private void Action w
  • C# 中的协变和逆变

    首先我要说的是 我是一名正在学习 C 编程的 Java 开发人员 因此 我会将我所知道的与我正在学习的进行比较 我已经使用 C 泛型几个小时了 我已经能够在 C 中重现我在 Java 中知道的相同内容 除了几个使用协变和逆变的示例 我正在读
  • 关闭 XDOCUMENT 的实例

    我收到这个错误 该进程无法访问文件 C test Person xml 因为它是 被另一个进程使用 IOException 未处理 保存文件内容后如何关闭 xml 文件的实例 using System using System Collec
  • 在 GCC 和 Clang 下,使用 lambda 的简单 RAII 包装器的复制初始化意外失败

    我在创建一个简单的 RAII 包装器时遇到了一个意想不到的问题 更不用说下面代码的逻辑不完整性了 复制构造函数和赋值运算符未删除等 这意味着是一个SSCCE 令我印象深刻的是复制初始化我的包装器与临时 lambda 的结果会导致编译错误 而
  • 如何在 Windows 窗体中运行屏幕保护程序作为其背景?

    如何在 Windows 窗体中运行屏幕保护程序作为其背景 用户还可以在屏幕保护程序运行时与表单控件进行交互 为什么这个 我们有一个案例 需要在用户时运行 Windows Bubbles 屏幕保护程序 可以继续与表单控件交互吗 您可以使用以下
  • 将 C# 反射代码移植到 Metro-Ui

    我正在尝试移植使用反射的现有 C 类 通用工厂 但我无法编译这段代码 Type types Assembly GetAssembly typeof TProduct GetTypes foreach Type type in types i
  • 使用反射获取基类的受保护属性值

    I would like to know if it is possible to access the value of the ConfigurationId property which is located in the base
  • 使用 openssl 检查服务器安全协议

    我有一个框架应用程序 它根据使用方式连接到不同的服务器 对于 https 连接 使用 openssl 我的问题是 我需要知道我连接的服务器是否使用 SSL 还是 TLS 以便我可以创建正确的 SSL 上下文 目前 如果我使用错误的上下文尝试
  • Microsoft.Graph - 如何从具有不同用户名的共享邮箱发送?

    我目前正在将使用 SMTP 的服务代码移植到 Office 365 通过 SMTP 我可以使用 发件人 字段在来自共享收件箱的邮件上设置不同的用户名 同时保留共享电子邮箱地址 这似乎无法通过 Office 365 运行 其工艺流程为 客户填
  • 使用scanf()时如何区分整数和字符

    我只是使用该功能scanf 代码如下 scanf d a printf d a 当我输入1时 它会像我想要的那样打印1 但即使我输入 1a 它也会像以前一样打印 1 当用户输入非整数时 例如 2 3 12ab 1 a 我想向用户显示 输入整
  • 为什么重载方法在 ref 仅符合 CLS 方面有所不同

    公共语言规范对方法重载非常严格 仅允许根据其参数的数量和类型来重载方法 如果是泛型方法 则根据其泛型参数的数量进行重载 根据 csc 为什么此代码符合 CLS 无 CS3006 警告 using System assembly CLSCom
  • c# 如何生成锦标赛括号 HTML 表

    所以我已经被这个问题困扰了三个星期 但我一生都无法弄清楚 我想做的是使用表格获得这种输出 演示 http www esl world net masters season6 hanover sc2 playoffs rankings htt
  • 更改其他页面的主窗口内容

    在 WPF 应用程序的主窗口中 我有一个 Badged 元素 来自材料设计 这是我的代码
  • `cosf`、`sinf` 等不在 `std` 中 [重复]

    这个问题在这里已经有答案了 根据这里的讨论 我有报告了一个错误 https bugs launchpad net ubuntu source gcc 8 bug 1831385给 Ubuntu 开发者 编译以下示例 C 程序时 includ
  • 将 bignum 类型结构转换为人类可读字符串的有效方法是什么?

    我有一点问题 为了增长我的 C 知识 我决定尝试实现一个基本的 bigint 库 bigint 结构的核心将是一个 32 位整数数组 选择它们是因为它们适合寄存器 这将允许我在数字之间进行操作 这些操作将在 64 位整数中溢出 这也将适合寄
  • 微软语音识别速度

    我正在使用微软的语音识别器开发一个小型练习应用程序 对于我正在做的事情来说 我似乎无法让它足够快地识别单个单词 我希望能够正常说话 系统将从我所说的内容中抓取 关键字 并生成一个字符串 目前我正在使用 5 个单词的自定义语法 红 蓝 黄 绿
  • 将一个 long 转换为两个 int 以进行重构

    我需要将一个参数作为两个 int 参数传递给 Telerik Report 因为它不能接受长参数 将 long 拆分为两个 int 并在不丢失数据的情况下重建它的最简单方法是什么 使用掩蔽和移位是最好的选择 根据文档 long 保证为 64
  • 正在获取“未终止 [] 设置”。 C# 中的错误

    我正在 C 中使用以下正则表达式 Regex find new Regex url
  • c# 替代方案中 cfusion_encrypt 中填充的密钥是什么?

    我找到了从这里复制 C 中的 cfusion encrypt 函数的答案 ColdFusion cfusion encrypt 和 cfusion decrypt C 替代方案 https stackoverflow com questio

随机推荐

  • 获取窗口截图 Windows API

    我正在尝试制作一个在现有 GUI 之上工作的程序来对其进行注释并提供额外的计算和统计信息 我想使用图像识别来做到这一点 因为我在大学里使用 Matlab 和类似的东西学到了很多这方面的知识 我可以获得要执行图像识别的窗口的句柄 但我不知道如
  • 为什么两个不同的数组文字在 Swift 中彼此相等?

    为什么表达 import Foundation a b c c b a 评估为true在 Swift 游乐场 当未导入 Foundation 时 该表达式的计算结果为 false 乔什的答案很接近 但并不完全正确 按住 Option 键并单
  • SQL Server 表可以有两个标识列吗?

    我需要将一列作为主键 另一列作为自动递增订单号字段 这可能吗 编辑 我想我只会使用复合数作为订单号 不管怎么说 多谢拉 CREATE TABLE dbo Foo FooId int IDENTITY 1 1 NOT NULL BarId i
  • 带参数的图像 - HTML

    我不知道如何提出这个问题 我不知道下面的标签是如何工作的 img src img png value 23 这个标签工作正常 并且它正确地渲染了图像 是否value 23有效果吗 或者它被浏览器忽略了 我什至不知道如何谷歌这个 就像向图像传
  • 为什么 System.Windows.Controls.Button 的内边距始终为 10px?

    请参阅屏幕截图 青色边框框是按钮 蓝色填充是矩形 我一生都无法弄清楚如何摆脱按钮中的填充 有没有办法将矩形放置在左上角 使其接触青色边框 Thanks 您是否尝试过设置Rectangle的边际为0
  • 初始加载屏幕上的角度冻结 SVG 动画

    我想在浏览器加载 Angular 5 的脚本和其他资源时播放动画 例如这个 SVG 动画
  • 您必须在实例化此 ParseObject 子类之前注册它

    我在我的中收到以下错误Android应用程序使用Parse You must register this ParseObject subclass before instantiating it In my Application对象 我正
  • Neo4j 在浏览器图形视图中仅显示特定关系

    我有这个密码查询 MATCH i Issue name SN 229 d ON DATE gt s Stage RETURN i MAX d long MIN d long 1 AS Days s and I get these resul
  • 未显示 Toast 消息

    我试图使用以下代码在我的应用程序中显示一条 toast 消息 AlertDialog Builder alert new AlertDialog Builder this alert setTitle Do you want to cont
  • Java类实例递归调用

    我有一个非常基本的java理论问题 为什么 Employee 类在下面的示例中递归地调用其自身 class Employee Employee emp new Employee public class Manager extends Em
  • 阿帕奇 POI 和颜色

    我在使用 Apache POI 时遇到一些问题 如果能得到一些帮助就好了 我想删除 Excel 工作表子部分中的颜色 为此 我尝试的第一件事是渲染我想要清理的单元格 假设仅第一行的单元格 并将其颜色设置为白色 cell getCellSty
  • 识别 Sublime Text 3 代码片段源

    有谁知道如何识别 Sublime Text 3 代码片段的来源 有一个用于 Rails 的 我认为它来自某个包 我已经卸载了该软件包 但该代码片段仍然可以使用 这让我发疯 Press Ctrl Backtick to open the co
  • 如何编写迭代器?

    我有一个节点网络 在节点之间传递结构化数据 对于我的子问题 我们有这个分支 节点的线性序列 nodes source n1 n2 n3 n4 第一个节点是生成器 每个其他节点从输入节点获取值并提供输出值 当前的实现是从管道的普通 get 和
  • jQuery onmouseover + onmouseout / 悬停在两个不同的 div 上

    我有一个问题 这是我的 HTML 的一部分 div Here Hover div div Here content to show div 这是我的 jQuery 脚本的一部分 jQuery div 2 hide jQuery div 1
  • 如何使用 vegas.js 插件添加文本动画

    我正在使用 vegas js 插件 http vegas jaysalvat com documentation 对于我的网站 我想用这些图像显示一些文本 我如何添加一些带有图像的动画文本 在 body 中初始化 vegas js
  • Flask url_for 在模板的外部 JavaScript 中不起作用

    在index html 中 我链接到index js 文件 单击一个按钮 js 会向 Flask 后端发送请求 后端返回静态文件路径 data Sharon 4 png 我想使用以下函数以 HTML 形式呈现它 但它不起作用 为了简化它 我
  • 将代码直接放在InitializeComponent 之后是不好的做法吗?

    我只是想知道一件事 我有一个加载页面的框架 当前每个页面都有一个Page Loaded每次访问页面时都会运行的方法 这工作得很好 但如果我使用导航转到以前访问过的页面 我会注意到错误 返回页面后 Page Loaded我不希望再次被呼叫 使
  • 仅选择具有上次修改时间戳的行,不选择具有相同 ID 和旧时间戳的重复行

    我找不到解决我的问题的方法 我有两个表 Order 和 OrderDetail 订单表 简单版 ID modified 1 7 1 2018 2 10 1 2018 3 15 1 2018 4 20 1 2018 5 25 1 2018 订
  • Oracle插入if不存在语句

    insert into OPT email campaign id values email protected 100 where not exists select from OPT where email email protecte
  • LINQ 到实体转换问题

    我正在尝试以通用方式过滤 LINQ to entities 查询 但我不断收到错误 这是一段代码 private IQueryable