- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
(以下代码已更新并正常运行)
有来自 LinqPad 的动态 OrderBy 示例。我想要做的只是简单地为此示例应用“Where”而不是“OrderBy”。这是我的代码:
IQueryable query =
from p in Purchases
//where p.Price > 100
select p;
string propToWhere = "Price";
ParameterExpression purchaseParam = Expression.Parameter (typeof (Purchase), "p");
MemberExpression member = Expression.PropertyOrField (purchaseParam, propToWhere);
Expression<Func<Purchase, bool>> lambda = p => p.Price < 100;
lambda.ToString().Dump ("lambda.ToString");
//Type[] exprArgTypes = { query.ElementType, lambda.Body.Type };
Type[] exprArgTypes = { query.ElementType };
MethodCallExpression methodCall =
Expression.Call (typeof (Queryable), "Where", exprArgTypes, query.Expression, lambda);
IQueryable q = query.Provider.CreateQuery (methodCall);
q.Dump();
q.Expression.ToString().Dump("q.Expression");
此代码出现异常:“InvalidOperationException:类型‘System.Linq.Queryable’上的方法‘Where’与提供的参数不兼容。”
任何帮助都是值得的。
干杯
最佳答案
我觉得你的 lambda 表达式创建很奇怪。您无缘无故地添加了另一个参数。您还在使用 Predicate<Purchase>
而不是 Func<Purchase, bool>
.试试这个:
LambdaExpression lambda = Expression.Lambda<Func<Purchase, bool>>(
Expression.GreaterThan(member, Expression.Constant(100)),
purchaseParam);
关于c# - 无效操作异常 : No method 'Where' on type 'System.Linq.Queryable' is compatible with the supplied arguments,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3423270/
“所有浏览器兼容”和“跨浏览器兼容”有什么区别? “交叉”是什么意思,是指不同的操作系统吗? 如果任何网站在 IE 7、8 FF 3+、Safari 3+ 的桌面版本上运行良好,我们可以说它是跨浏
我们目前正在维护一个基于 ASP.Net 3.5、MS Enterprise Lib 4.1 和 Telerik ASP.Net AJAX 2010 的企业应用程序。该应用程序由 2 个不同的部分组成
我有一个基于 Ant 的构建系统,我想我可以编写一个 python 脚本来测试目录层次结构中的所有已编译/jarred 类,以避免在编译时与运行时使用不同版本时可能出现的问题。 脚本最初检查了在各种
对于纯 C 共享库,是否有可能在 API 兼容性未被破坏的情况下破坏 ABI 兼容性? 此外,如果编写一个库 A,它提供现有库 B 的所有 API 函数,以及一些额外的 API 函数,那么库 A AB
我可以看到这个问题在这里之前已经被问过 tensorflow-has-no-attribute-compat 但给出的答案是 Microsoft Visual C++ 2015-2019 Redist
我有以下错误。我正在使用 tensorflow 的 conda 安装。我正在努力尝试将它与我的 GPU 一起使用。 Loaded runtime CuDNN library: 5005 (compat
添加 Android 平台(ionic cordova platform add android)后,我构建了我的 Ionic 项目(ionic cordova build android),但出现错
我刚刚在野外看到了这个元标记,想知道它的作用以及为什么要使用它? 阅读documentation在 About.com 上,它说: "IE=edge" tells Internet Explorer
切换到 Android Studio 3.2 canary 后,我收到以下构建错误。 我看过this发布这个人有类似问题但没有提到解决方案的地方。 我想尝试新的 Material 组件和喷气背包,所以
我刚刚将 build.gradle 编译 SDK 更新为 27 API。 compileSdkVersion 27 buildToolsVersion '27.0.3' targetSdkVersio
我有一个简单的 HTML5/ASP.NET 网站,我今天开始在 IE10 中测试它,因为它是为 Win7 发布的。 这是我组织内的一个 Intranet 站点,我相信不久前部署了一个组策略以默认启用在
假设您有一个需要维护的旧代码库,它显然不符合当前标准。在获得标准合规性的同时,您将如何分配您的工作以保持代码库向后兼容?什么对你很重要? 最佳答案 在我的工作场所,我们没有任何时间仅仅因为它可以使代码
我已经在 JDK7 中创建了一个应用程序,但 jre6 仍在市场上使用,如果我将我的 jar 文件发送给使用 jre6 的人,它不会工作,应用程序是否有检查 jre 版本的方法,如果它不兼容然后要
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
我正在开发一个同时具有 GUI(图形)和 API(脚本)界面的应用程序。我们的产品有一个非常大的安装基础。许多客户投入了大量时间和精力来编写使用我们产品的脚本。 在我们所有的设计和实现中,我们(可以理
我有以下类层次结构: class O_Base {...} class O extends O_Base {...} abstract class A_Abstract { public fu
我得到了这两个 ko.compulateds 列表,我想在其中拖放,但也使用按钮移动以删除添加到列表的内容。 但是我无法让它们同时使用拖放和按钮功能。 对于拖放,我使用 Ryan Niemeyers
我从事的项目以源代码和二进制形式免费分发,因为我们的许多用户需要专门为他们的系统编译它。这需要一定程度的考虑,以保持与旧主机系统(主要是它们的编译器)的向后兼容性。 其中一些最糟糕的,例如 GCC 3
我的应用程序以 API/minSDKversion 5 为目标,并在 2.2 上运行良好。我的 friend 刚刚尝试将我的应用程序下载到他运行 2.3.4 的 Samsung Galaxy S2 上
简而言之,我的问题是: C 标准明确规定结构成员的相对地址应该按照声明的顺序增长。它也没有说明结构成员应该如何精确对齐的任何细节。显然,这样做是为了允许填充结构和打包结构的实现。然而,从理论上讲,可以
我是一名优秀的程序员,十分优秀!