如何从 mvc 控制器中的 Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryable 获取值

2024-04-08

我知道标题有点复杂,但让我通过解释问题来澄清标题。

As per image I want to filter product name in search textbox. For ex: In search textbox if I enter the oil that in datatable whole data want to show which product name is oil.

对于过滤器,我使用了 linq 查询,这是我的代码,

var dataList = (from x in query
    select new
    {
        PartName = _Db.Part.Where(z => z.Id == x.Select(p => p.PartId).FirstOrDefault()).Select(p => p.Name),
        ManufacturerName = _Db.Manufacture.Where(z => z.Id == x.Select(p => p.ManufacturerId).FirstOrDefault()).Select(p => p.name),
        CategoryName = _Db.Category.Where(z => z.Id == x.Select(p => p.CategoryId).FirstOrDefault()).Select(p => p.Name),
        Pcs = x.Sum(o =>o.Pcs) - 
        (from m in _Db.MaterialRecord
           join s in _Db.ServiceJob on m.ServiceJobId equals s.Id
           where m.pid == x.Select(p => p.PartId).FirstOrDefault()
           select m).Sum(z => z.Qty),
        Weight = _Db.Purchase.Where(p => p.Weight == x.Select(s => s.Weight).FirstOrDefault()).Select(a => a.Weight).FirstOrDefault(),      
        WeightType = x.Select(p => p.WeightTypeId).FirstOrDefault() > 0 ?((WeightType)x.Select(p => p.WeightTypeId).FirstOrDefault()).ToString() :"",
    }).ToList();

//Search    
if (!string.IsNullOrEmpty(searchValue))
    dataList = dataList.Where(m => m.CategoryName.Contains(searchValue.ToString().ToLower())).ToList();

//Returning Json Data
return Json(new { draw = draw, recordsFiltered = recordsTotal, recordsTotal = recordsTotal, data = data });

根据代码,我在 datalist 变量中获取完整数据。现在,当我在搜索框中搜索任何产品时,搜索条件将为 true,之后 datalist 值将为 null[如调试代码所示]。

因此,该数据表显示空数据。

为了理解为什么会发生这种情况,我添加了字符串()在类别行的数据列表查询中,即

CategoryName = _Db.Category.Where(z => z.Id == x.Select(p => p.CategoryId).FirstOrDefault()).Select(p => p.Name).toString(),

添加后toString()在这一行中它显示了这一行Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryable。但我想要这一行的结果值。为了更清楚,让我们看另一张图片

That oil我想要在搜索条件行中的结果值,即

dataList = dataList.Where(m => m.CategoryName.Contains(searchValue.ToString().ToLower())).ToList();

但现在它显示了这一行Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryable代替结果值。


你应该知道的第一件事是ToString() https://learn.microsoft.com/en-us/dotnet/api/system.object.tostring?view=netframework-4.7.2当应用于集合对象时,其默认实现返回对象的完全限定名称,在本例中返回Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryable<string>这是一个不会重写该方法的引用类型。

我们首先评估这个表达式:

CategoryName = _Db.Category.Where(z => z.Id == x.Select(p => p.CategoryId).FirstOrDefault())
                           .Select(p => p.Name),

假设Category has DbSet<Category>类型,即Select()上面代码中使用的扩展方法返回EntityQueryable<string>其中包含 LINQ-to-Entities 查询提供的执行 SQL 语句的结果集集合。如果要从该集合中提取单个字符串值,则必须使用其中之一First(), Single(), FirstOrDefault() or SingleOrDefault()扩展方法。

因此,您应该添加如上所述的扩展方法以返回字符串值而不是集合:

var dataList = (from x in query
    select new {
        // other properties

        CategoryName = _Db.Category.Where(z => z.Id == x.Select(p => p.CategoryId).FirstOrDefault())
                               .Select(p => p.Name).SingleOrDefault(),

        // other properties
    }).ToList();

然后你可以使用Contains针对子字符串 (searchValue) 因为CategoryName具有字符串类型:

dataList = dataList.Where(m => m.CategoryName.Contains(searchValue.ToString().ToLower())).ToList();

参考:

Entity Framework/Core 和 LINQ to Entities 查询方法(运算符) https://weblogs.asp.net/dixin/entity-framework-core-and-linq-to-entities-4-query-methods

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

如何从 mvc 控制器中的 Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryable 获取值 的相关文章

  • 实体框架,高效的NavigationProperty.OfType查询

    我在使用每表类型 TPT 继承在 EF4 中构造有效查询时遇到问题 我有一个名为Episode 并且每个情节可以有多个事件 有几种不同类型的事件都源自称为Event 我想过滤不包含特定类型事件的所有剧集 Episode有一个导航属性 它是其
  • 用于 C# 和 iPhone 应用程序的 MongoDB

    我正处于设计应用程序的初始阶段 该应用程序将具有用 C 实现的后端 该后端将使用 IIS 上托管的 WCF Web 服务为其他平台提供数据 iPhone 就是其中之一 由于是个人项目 所以想用它来学习MongoDB 我已经知道有社区开发的
  • 在C#中创建对象而不使用new关键字? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 有没有一种方法可以在 C 中不使用
  • 如何在 C 中的 for (;;) 循环中声明多个变量?

    我认为可以在一个变量中声明多个变量for loop for int i 0 char ptr bam i lt 10 i 但我刚刚发现这是不可能的 GCC 给出以下错误 错误 char 之前应有不合格的 id 你真的不能在一个变量中声明不同
  • 如何在线程中调用带有多个参数的方法?

    我正在构建一个 C 桌面应用程序 如何在线程中调用采用多个参数的方法 我有一个名为 Send string arg1 string arg2 string arg3 的方法 我需要使用名为 SendingThread 的线程调用此方法 有人
  • linq按顺序插入元素的方法

    我有一个按元素的 Name 属性排序的元素集合 我需要在保持顺序的同时将新元素插入集合中 我正在寻找一种简洁的 LINQ 方法来做到这一点 我的代码如下 this Children 是集合 d 是我需要插入的新元素 需要两次遍历集合才能找到
  • 计算串行通信的块校验字符 (BCC)

    我通过 NET 的 SerialPort 类通过串行与设备进行通信 并且根据第三方设备规范要求 我需要计算 块检查字符 我被告知的唯一信息是 这是一个异或运算 XOR 并且必须对所有角色执行 那么 如果我有字符串 Bob 001 将如何计算
  • 登录成功后身份服务器不重定向

    我正在尝试使用 MVC 客户端设置 IdentityServer4 一切工作正常 直到我想添加 ASP 身份 当我添加代码来使用 SQL Server 和 Identity 时 成功登录后 Identity 服务器不会将我重定向回客户端 而
  • 从 Dotnet Google API 获取用户电子邮件信息

    我正在为 gData 和 Drive C API 开发两个独立的 Oauth2 实现 分别将令牌信息存储在 OAuth2Parameters 和 AuthorizationState 中 我可以刷新令牌并将其用于必要的 API 调用 我正在
  • Web API 获取多部分/表单数据响应的最简单方法

    我有问题 但我看不到我做错了什么 我想用最简单的方法来让它工作 稍后我会让它变得更复杂 但目前只想命中 post 方法 我什至不关心里面的代码当前是否正在工作 我唯一关心的是它会发回 OK 200 回复 目前 我要么收到内部服务器错误 50
  • 是否有适用于 Amazon 产品 API 的最新 C# 示例?

    我正在尝试创建一个与亚马逊的产品 API 交互的小型应用程序 获取文章的价格等 不幸的是 到目前为止我发现的与 Amazon WCF 服务交互的所有 C 示例都已过时 我知道 Amazon 决定每个服务调用都必须使用个人 accessKey
  • C++ GetDIBits 不工作

    首先我加载图像 cool bmp 加载很好 然后我调用函数 getPixArray 但它失败了 case WM CREATE runs once on creation of window hBitmap HBITMAP LoadImage
  • boost::property_map 在 boost 中是如何实现的以及如何更改它

    我想知道属性映射是如何在提升图中实现的 例如 我的顶点和边属性定义如下 vertex property gt struct NodeInfo int a b c actual bundled property struct NodeInfo
  • 开源 C# 套接字 (TCP + UDP) 库 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我对 NET 框架的标准套接字类感到头疼 有人可以推荐一个高效的开源 C 套接字 TCP UDP 库来处理套接字消息吗 使用 Kerry Jia
  • iTextSharp - 如何将 PDFPRow 添加到 PDFPTable?

    我想将 PDFPCells 数组添加到 PDFPRow 然后将 PDFPRow 添加到 PDFPTable 但我似乎无法在 PDFPTable 中找到为此的方法 然而有一个 PDFPTable AddCell 有任何想法吗 查看PdfPTa
  • 起订量中的匹配设置问题

    我过去一周左右一直在使用 Moq 直到今天才遇到任何问题 我在获取时遇到问题VerifyAll 以正确匹配我的模拟的设置 我目前正在为我的应用程序的 API 编写单元测试 该应用程序的结构如下 API lt gt Service lt gt
  • 画笔到画笔动画

    我设法找到了如何制作 WPF 动画 两种颜色之间的过渡 它被称为 ColorAnimation 并且效果很好 ColorAnimation animation new ColorAnimation From Colors DarkGreen
  • c 中的帕斯卡三角形与递归函数

    您好 这是我用于计算帕斯卡三角形的代码 但它运行错误 已停止工作 为什么 我认为它的错误在于 paskal 函数 include
  • 我什么时候应该在 ASP.NET MVC 中使用部分视图? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我已经完成了示例 asp net m
  • 错误 C2601:“main”:本地函数定义非法 - MS VS 2013 编译器

    我正在用 C 编写一个小程序 当我尝试使用 MS VS 2013 编译器编译它时 出现错误 C2601 main 本地函数定义非法 这是什么意思 我的代码是 include

随机推荐

  • 尝试从私有实例调用模板方法时出现编译器错误[重复]

    这个问题在这里已经有答案了 如果您已经知道答案 这个问题只是另一个问题的重复 请注意我的后续问题 如果存在同名的不相关的全局模板函数 为什么不需要模板关键字 https stackoverflow com questions 2389249
  • 正则表达式失败时非常慢

    我有一个正则表达式 应该验证字符串是否由空格分隔的字符串组成 正则表达式工作得很好 好吧 它最后允许有一个空格 但这不是他的问题 但是当验证失败时需要很长时间 正则表达式如下 w 0 当尝试使用字符串进行验证时 this is SAMPLE
  • Rest 服务抛出异常:最佳处理方法

    我有一个休息服务 它会抛出异常 我想知道处理这个问题的最佳方法是什么 所以我有一个休息服务 它可以抛出用户定义的异常 我在 catch 块内捕获该异常并再次抛出该异常 并使用休息框架来捕捉这一点 对于非用户定义的异常也是如此 我认为这会很好
  • 为什么在 Java 中两个整数相除会返回 0.0? [复制]

    这个问题在这里已经有答案了 int totalOptCount 500 int totalRespCount 1500 float percentage float totalOptCount totalRespCount 为什么它总是返回
  • 如何向 UIAlertController 添加进度条?

    我想在 swift iOS 8 UIAlertController 中添加进度条 这可能吗 有没有办法继承 UIAlertController 并添加进度条并连接一些委托函数 thanks 如果您只需要一个进度条 只需将其添加为子视图 如下
  • 检查@@rowcount函数来确定行是否存在可以吗?

    我正在浏览我们的代码库并看到很多这样的测试 declare row id int declare row attribute string select row attribute ROW ATTRIBUTE from SOME TABLE
  • isset() 和empty() - 使用什么

    你能帮助我改进我的编码风格吗 在某些任务中我需要检查 变量是否为空或包含某些内容 为了解决这个任务 我通常会执行以下操作 检查 该变量是否已设置 如果它已设置 我检查 它是否为空 我有一个问题 我应该在empty 之前使用isset 有必要
  • 错误:org.apache.hadoop.hbase.MasterNotRunningException:null+hbase+hadoop

    我最近用两台机器 在ubuntu上 配置了hadoop集群 到目前为止效果很好 但是当我尝试在上面的 hadoop 集群上配置 hbase 时 它 显示错误 这就是我所做的 我有两台机器 192 168 1 110 Hadoop主站 192
  • 无法翻译 LINQ 表达式

    我有一张桌子叫Orders和一个名为Customers Orders有财产CustomerId 现在我想获取我的客户的所有订单Customers list 这是我尝试过的 IEnumerable
  • 如何右对齐 JLabel 中的图标?

    对于带有图标的 JLabel 如果您setHorizontalTextPosition SwingConstants LEADING 无论标签有多宽 图标都会绘制在文本之后 这对于列表来说尤其糟糕 因为图标会到处都是 具体取决于每个项目的文
  • FireMonkey TListview 搜索重新加载问题

    当您进行搜索时 TListview 无法正确重新加载 请清除搜索 然后重新加载列表视图 使用XE5 步骤是 项目运行后 在搜索中输入文本 单击 清除 按钮或删除搜索文本或单击搜索 X 按钮清除搜索 按 重新加载 按钮 什么也没有出现 您可以
  • Webview 不加载 URL,但浏览器会加载

    因此 从我的第一个屏幕开始 我将 URL 传递给要在 Web 视图中启动的活动 但是当 webview 启动时 它显示 web page not available The web page at URL might be temporar
  • 需要 Microsoft Visual C++ 14.0,在 Windows Docker 上安装 pip 包

    我希望能够安装 C 编译器 因为某些软件包没有我需要的轮子 Windows 上大量的 Visual Studio 构建工具中所需的确切工具需要大量挖掘 并且安装需要很长时间 我见过一些导致此问题的错误 请随意将其他错误添加到此列表中 库 m
  • 嵌套形式和一对一关系

    我的用户和目标之间存在一对一的关系 我想构建一个显示用户目标的表单 问题是我的代码仅在用户已经定义了目标时才有效 当不存在目标时 不会呈现文本字段 Rails 是否提供了一种简单的方法来做到这一点 我就是这样做的 class User lt
  • 在 beforeAction 中渲染视图时,在 Yii 中出现“标题已发送”错误

    我读过 Yii2 的处理程序 但我不知道如何在这种情况下正确使用它们 基本上在我的SiteController 我有 class SiteController extends app components Controller public
  • 我们可以从 WPF 窗口将文件拖放到 Windows 资源管理器中吗?

    我有一个显示当前文件系统的树视图 我想添加功能以允许将文件拖放到 Windows 资源管理器中 如果我拖动树视图的任何节点并将其放在 Windows 资源管理器的任何窗口上 则文件将被复制到该位置 我怎样才能做到这一点 初读this htt
  • Typescript 中的 Getter/Setter

    我正在学习有关 Typescript 类的教程 教学人员创建了一个类和一些 setter getter 方法 但是当我读到时打字稿文档 https www typescriptlang org docs handbook classes h
  • 是否可以使用Dropbox、Google Drive、Skydrive等作为服务器空间?

    我正在创建一个在线连接到服务器以收集信息的应用程序 为了节省从大公司租用服务器空间的费用 我想知道这些免费服务 Dropbox Google Drive Microsoft Skydrive Amazon Cloud 等 是否可以用作服务器
  • 将aar包含到aar中

    我有一个以 aar 格式分发的 android 库 它的重量为300kb 我想创建另一个库 也是 aar 格式 其中第一个库位于依赖项中 但结果库大小为30kb 所以显然它不包括第一个库 我尝试使用添加第一个库flatDir reposit
  • 如何从 mvc 控制器中的 Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryable 获取值

    我知道标题有点复杂 但让我通过解释问题来澄清标题 As per image I want to filter product name in search textbox For ex In search textbox if I ente