LINQ to SQL 查询中的自定义方法

2024-04-21

是否可以在查询中使用自定义方法,例如:

var result = from u in context.MyTable where MyMethod(u) == 10 select u;

正如 Pranay 所解释的,您不能将自定义 (C#) 方法作为 LINQ to SQL 查询的一部分,因为 LINQ to SQL 无法查看该方法的表达式树,因此无法将其转换为 SQL。

您可以选择的一种选择是用 SQL 编写函数并将其作为 SQL 函数存储在 SQL Server 上(您也可以使用 SQL CLR,但我还没有尝试过)。然后您可以将该功能添加到您的DataContext类型,LINQ to SQL 会将其转换为对 SQL Server 上函数的调用。就像是:

var result = from u in context.MyTable 
             where context.MyMethod(u) == 10 select u; 

当然,问题是您需要用 SQL 编写该函数(我认为 SQL CLR 也可以工作 - 但不确定性能和其他可能的复杂情况)

I also 写了一篇文章 http://tomasp.net/blog/linq-expand.aspx(不久前)它展示了当您将“方法”编写为表达式树方式(作为类型的值)时如何执行此操作Expression<Func<...>>),这是可能的,因为在这种情况下,代码被编译为表达式树。但是,必须完成一些后处理,并且您仍然可以只编写一个可以轻松内联到 LINQ 查询中的表达式。

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

LINQ to SQL 查询中的自定义方法 的相关文章

  • EF Core Group By 翻译支持条件总和

    听说 EF Core 2 1 将支持翻译小组 我感到非常兴奋 我下载了预览版并开始测试它 但发现我在很多地方仍然没有得到翻译分组 在下面的代码片段中 对 TotalFlagCases 的查询将阻止翻译分组工作 无论如何 我可以重写这个以便我
  • GLKit的GLKMatrix“列专业”如何?

    前提A 当谈论线性存储器中的 列主 矩阵时 列被一个接一个地指定 使得存储器中的前 4 个条目对应于矩阵中的第一列 另一方面 行主 矩阵被理解为依次指定行 以便内存中的前 4 个条目指定矩阵的第一行 A GLKMatrix4看起来像这样 u
  • 在结构中使用 typedef 枚举并避免类型混合警告

    我正在使用 C99 我的编译器是 IAR Embedded workbench 但我认为这个问题对于其他一些编译器也有效 我有一个 typedef 枚举 其中包含一些项目 并且我向该新类型的结构添加了一个元素 typedef enum fo
  • 秒表有最长运行时间吗?

    多久可以Stopwatch在 NET 中运行 如果达到该限制 它会回绕到负数还是从 0 重新开始 Stopwatch Elapsed返回一个TimeSpan From MSDN https learn microsoft com en us
  • 在哪里可以找到列出 SSE 内在函数操作的官方参考资料?

    是否有官方参考列出了 GCC 的 SSE 内部函数的操作 即 头文件中的函数 除了 Intel 的 vol 2 PDF 手册外 还有一个在线内在指南 https www intel com content www us en docs in
  • ASP.NET MVC:这个业务逻辑应该放在哪里?

    我正在开发我的第一个真正的 MVC 应用程序 并尝试遵循一般的 OOP 最佳实践 我正在将控制器中的一些简单业务逻辑重构到我的域模型中 我最近一直在阅读一些内容 很明显我应该将逻辑放在域模型实体类中的某个位置 以避免出现 贫血域模型 反模式
  • Asp.NET WebApi 中类似文件名称的路由

    是否可以在 ASP NET Web API 路由配置中添加一条路由 以允许处理看起来有点像文件名的 URL 我尝试添加以下条目WebApiConfig Register 但这不起作用 使用 URIapi foo 0de7ebfa 3a55
  • 如何使用 LAMBDA 表达式在 LINQ 中执行 IN 或 CONTAINS?

    我有以下 Transact Sql 我正在尝试将其转换为 LINQ 并且很挣扎 SELECT FROM Project WHERE Project ProjectId IN SELECT ProjectId FROM ProjectMemb
  • 用于登录 .NET 的堆栈跟踪

    我编写了一个 logger exceptionfactory 模块 它使用 System Diagnostics StackTrace 从调用方法及其声明类型中获取属性 但我注意到 如果我在 Visual Studio 之外以发布模式运行代
  • 不同枚举类型的范围和可转换性

    在什么条件下可以从一种枚举类型转换为另一种枚举类型 让我们考虑以下代码 include
  • 将 VSIX 功能添加到 C# 类库

    我有一个现有的单文件生成器 位于 C 类库中 如何将 VSIX 项目级功能添加到此项目 最终目标是编译我的类库项目并获得 VSIX 我实际上是在回答我自己的问题 这与Visual Studio 2017 中的单文件生成器更改 https s
  • SolrNet连接说明

    为什么 SolrNet 连接的容器保持静态 这是一个非常大的错误 因为当我们在应用程序中向应用程序发送异步请求时 SolrNet 会表现异常 在 SolrNet 中如何避免这个问题 class P static void M string
  • 如何在整个 ASP .NET MVC 应用程序中需要授权

    我创建的应用程序中 除了启用登录的操作之外的每个操作都应该超出未登录用户的限制 我应该添加 Authorize 每个班级标题前的注释 像这儿 namespace WebApplication2 Controllers Authorize p
  • 使用 x509 证书签署 json 文档或字符串

    如何使用 x509 证书签署 json 文档或字符串 public static void fund string filePath C Users VIKAS Desktop Data xml Read the file XmlDocum
  • 覆盖子类中的字段或属性

    我有一个抽象基类 我想声明一个字段或属性 该字段或属性在从该父类继承的每个类中具有不同的值 我想在基类中定义它 以便我可以在基类方法中引用它 例如覆盖 ToString 来表示 此对象的类型为 property field 我有三种方法可以
  • WPF/C# 将自定义对象列表数据绑定到列表框?

    我在将自定义对象列表的数据绑定到ListBox in WPF 这是自定义对象 public class FileItem public string Name get set public string Path get set 这是列表
  • 向现有 TCP 和 UDP 代码添加 SSL 支持?

    这是我的问题 现在我有一个 Linux 服务器应用程序 使用 C gcc 编写 它与 Windows C 客户端应用程序 Visual Studio 9 Qt 4 5 进行通信 是什么very在不完全破坏现有协议的情况下向双方添加 SSL
  • cmake 将标头包含到每个源文件中

    其实我有一个简单的问题 但找不到答案 也许你可以给我指一个副本 所以 问题是 是否可以告诉 cmake 指示编译器在每个源文件的开头自动包含一些头文件 这样就不需要放置 include foo h 了 谢谢 CMake 没有针对此特定用例的
  • 如何在Xamarin中删除ViewTreeObserver?

    假设我需要获取并设置视图的高度 在 Android 中 众所周知 只有在绘制视图之后才能获取视图高度 如果您使用 Java 有很多答案 最著名的方法之一如下 取自这个答案 https stackoverflow com a 24035591
  • 基于 OpenCV 边缘的物体检测 C++

    我有一个应用程序 我必须检测场景中某些项目的存在 这些项目可以旋转并稍微缩放 更大或更小 我尝试过使用关键点检测器 但它们不够快且不够准确 因此 我决定首先使用 Canny 或更快的边缘检测算法 检测模板和搜索区域中的边缘 然后匹配边缘以查

随机推荐

  • 打开 PHPStorm 项目时可以自动运行终端命令吗?

    我有一个 Gulp 工作流程 我希望在 PHPStorm 中打开我的项目时自动启动该工作流程 这可能吗 Not possible at the moment https youtrack jetbrains com issue WEB 11
  • gcc -g 调试标志会影响程序执行吗?

    我刚刚测试了我正在工作的一个程序 当我使用 g 编译它时 我发现它的执行速度快了 3 s 统计上显着的变化 这对我来说毫无意义 我认为 g 标志不应该影响程序执行 即使它影响程序执行也会使它运行得更慢 而不是更快 谁能告诉我为什么会发生这种
  • .NET 3.5 SDK 位于哪里?

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 谁能提供下载 NET 3 5 SDK 的链接吗 我检查了微软网站和谷歌 但找不到这个的下
  • Grails 在 Service 类中获取 Session 和 Management

    我对 Grails 会话有疑问 我正在考虑为我的会话处理提供一个服务类 所以我创建了一个名为 SessionService 的类 在 grails app services grails 下 class SessionService sta
  • Spring Boot @ExceptionHandler 隐藏异常名称

    我正在使用 Spring Boot 1 3 X 并具有以下内容 RestController RequestMapping path foo public class FooController RequestMapping method
  • C# - 无法找到 x64 平台的库“leptonica-1.80.0.dll”

    我正在使用 Tesseract 5 2 0 创建一个控制台应用程序 下面是我的代码 System Drawing Bitmap img new System Drawing Bitmap convertedFile TesseractEng
  • 迭代 Lotus Domino 中的每个文档

    我希望迭代 可能很大 Lotus Domino 数据库中的每个文档 并且如果处理中断 网络连接错误 应用程序重新启动等 能够从上一个文档继续 我没有数据库的写入权限 我正在寻找一种方法 无需从服务器下载那些已处理的文档 因此 我必须将一些启
  • 如何将其他Python解释器设置为IPython

    我们可以更改 IPython 使用的 Python 解释器版本吗 我知道有 IPython 和 IPython3 但问题是 IPython 使用 Python2 7 而 IPython3 使用 Python3 4 2 我看不出有什么办法可以
  • pandas DataFrame如何混合不同比例的条形图和线图

    我试图让 pandas 覆盖条形图和线图 这两个系列具有不同的比例 因此我希望将值绘制在两个 y 轴上 我无法让 pandas 一起显示 条形图 和 线形图 from pandas import DataFrame df eg DataFr
  • 在 Angular2 中使用 ng-model 和 ng-control 之间的区别?

  • 如何在使用 QSS 悬停父 QFrame 时设置子 QLabels 的颜色?

    我试图使用样式表设置 QFrame 内 2 个标签的悬停状态颜色 但无论是否存在实际悬停 框架都会采用悬停状态 See screenshot 我有一个带有 QLabels 的 QFrame 我将默认颜色设置为绿色和紫色 当我将鼠标悬停在 Q
  • 了解 z-index 堆叠顺序

    我对使用有点困惑z index决定堆栈顺序 我不太明白浏览器如何处理元素position财产与没有财产的人联合起来 无论是否有明确定位的元素 是否有一个通用规则来决定元素的堆栈顺序 不同情况的例子值得赞赏 一般来说 混血兄弟姐妹 div 有
  • CSS3 - 在精灵图像的“背景位置”之间淡入淡出

    我想在精灵图像的 背景位置 之间淡入淡出仅使用CSS 我找到了很多教程 但没有找到像这样简单的东西
  • Findbugs contrib:方法从 catch 块中抛出替代异常,没有历史记录

    fb contrib 抱怨 方法从 catch 块中抛出替代异常 没有历史记录 在我的 try catch 块之一中 如何解决这个问题 有关于如何解决这个问题的详细解释吗 原始异常被捕获 您的代码抛出另一个异常 而不将原始异常包含在java
  • Android Studio 2.1.3 中构建错误

    我使用的是android studio 2 1 3 尽管清除了项目并再次重建 重新启动等 我还是收到以下错误 如何解决 错误 任务执行失败 app transformClassesWithJavaResourcesVerifierForDe
  • 在游标内使用 Merge 语句

    我们需要填充一个主表 该表由 20 个不同表中的列组成 我编写了一个存储过程来连接一些返回最大列数的表并将它们放在游标中 现在 我正在使用 for 循环来迭代游标记录 以便可以将它们插入主表中 如何在游标 for 循环内使用合并语句 以便我
  • 在序言中减去或添加列表的列表?

    我对序言相当陌生 正在尝试摆弄列表列表 我很好奇如何添加两个列表列表或减去它们从而得到一个列表列表 如果我有两个列表 可以说 SomeList 1 2 3 4 5 6 7 8 SomeList2 1 2 3 4 5 6 7 8 我该如何添加
  • 如何在不使用 INSERT INTO SELECT 语句的情况下实现此程序以导入到表中?

    目前导入 插入过程运行良好 但我不想为插入和选择编写一个查询 而是编写一个单独的查询来从 snomed descriptiondata 表中进行选择 并编写一个单独的查询来插入 snomedinfo data 表 我当前的代码 packag
  • 来自 VueX 和 NuxtJS 的持久状态

    我使用 vuex persistedstate 包 https github com robinvdvleuten vuex persistedstate https github com robinvdvleuten vuex persi
  • LINQ to SQL 查询中的自定义方法

    是否可以在查询中使用自定义方法 例如 var result from u in context MyTable where MyMethod u 10 select u 正如 Pranay 所解释的 您不能将自定义 C 方法作为 LINQ