实体框架 C# 中的反射

2023-12-09

我正在尝试使用反射通过实体框架进行动态选择。

这个想法是,该方法将获取列名称、要搜索的每列的值以及每列的顺序作为参数。

例如:

 public anEntity list(String ColumnName, String Value, String Order)
 {
    //
    //...
    items = (from r in context.Products
             where r.GetType().GetProperty(ColumnName). Contains(Value)))
             select r).OrderBy(Order).ToList();
    returns Items
 }

是否可以?你可以帮帮我吗?


我也有同样的事情!花了3个小时找到了解决方案!

Expression.Lambda 和运行时的查询生成,最简单的“Where”示例

与 EF、Expression> 和 LinqKit 配合使用效果非常好。

更改代码以使用动态类型:

private Expression<Func<Goods, bool>> LambdaConstructor (string propertyName, string inputText, Condition condition)
    {

            var item = Expression.Parameter(typeof(Goods), "item");
            var prop = Expression.Property(item, propertyName);
            var propertyInfo = typeof(Goods).GetProperty(propertyName);
            var value = Expression.Constant(Convert.ChangeType(inputText, propertyInfo.PropertyType));
            BinaryExpression equal;
            switch (condition)
            {
                case Condition.eq:
                    equal = Expression.Equal(prop, value);
                    break;
                case Condition.gt:
                    equal = Expression.GreaterThan(prop, value);
                    break;
                case Condition.gte:
                    equal = Expression.GreaterThanOrEqual(prop, value);
                    break;
                case Condition.lt:
                    equal = Expression.LessThan(prop, value);
                    break;
                case Condition.lte:
                    equal = Expression.LessThanOrEqual(prop, value);
                    break;
                default:
                    equal = Expression.Equal(prop, value);
                    break;
            }
            var lambda = Expression.Lambda<Func<Goods, bool>>(equal, item);
            return lambda;
        }

对于 OrderBy 使用:无法使用 LINQ OrderBy 中的属性名称进行排序

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

实体框架 C# 中的反射 的相关文章

  • c和java语言中的换行符

    现在行分隔符取决于系统 但在 C 程序中我使用 n 作为行分隔符 无论我在 Windows 还是 Linux 中运行它都可以正常工作 为什么 在java中 我们必须使用 n 因为它与系统相关 那么为什么我们在c中使用 n 作为新行 而不管我
  • 启动时出现 OData v4 错误:找不到段“Whatever”的资源

    我正在构建新的 v4 服务 一切进展顺利 直到我为新模型 实体添加了新控制器 并在启动站点进行测试运行时收到此错误 控制器似乎编码正确 就像其他控制器一样 控制器 CustomersOData 中的操作 GetFeed 上的路径模板 Cus
  • 推导指南中的引用和值之间的差异

    考虑类型A template
  • 如何将 #ifdef DEBUG 添加到 Xcode?

    我的项目中有一些代码永远不应该在发布版本中使用 但在测试时很有用 我想做这样的事情 ifdef DEBUG Run my debugging only code endif 在 Xcode 4 中哪里添加 DEBUG 设置 我尝试将其放入
  • 如何修复此错误“GDI+ 中发生一般错误”?

    从默认名称打开图像并以默认名称保存 覆盖它 我需要从 Image Default jpg 制作图形 将其放在 picturebox1 image 上并在 picurebox1 上绘制一些图形 它有效 这不是我的问题 但我无法保存 pictu
  • 在新的浏览器进程中打开 URL

    我需要在新的浏览器进程中打开 URL 当浏览器进程退出时我需要收到通知 我当前使用的代码如下 Process browser new Process browser EnableRaisingEvents true browser Star
  • C++中的类查找结构体数组

    我正在尝试创建一个结构数组 它将输入字符串链接到类 如下所示 struct string command CommandPath cPath cPathLookup set an alarm AlarmCommandPath send an
  • 无法在 Windows 运行时组件库的 UserControl 中创建依赖项属性

    我想在用户控件内创建数据可绑定属性 这个用户控件包含一个 Windows 运行时组件 项目 我使用下面的代码来创建属性 public MyItem CurrentItem get return MyItem GetValue Current
  • 关于在 Windows 上使用 WiFi Direct Api?

    我目前正在开发一个应用程序 我需要在其中创建链接 阅读 无线网络连接 在桌面应用程序 在 Windows 10 上 和平板电脑 Android 但无关紧要 之间 工作流程 按钮 gt 如果需要提升权限 gt 创建类似托管网络的 WiFi 网
  • 使用 JNI 从 Java 代码中检索 String 值的内存泄漏

    我使用 GetStringUTFChars 从使用 JNI 的 java 代码中检索字符串的值 并使用 ReleaseStringUTFChars 释放该字符串 当代码在 JRE 1 4 上运行时 不会出现内存泄漏 但如果相同的代码在 JR
  • Rx 中是否有与 Task.ContinueWith 运算符等效的操作?

    Rx 中是否有与 Task ContinueWith 运算符等效的操作 我正在将 Rx 与 Silverlight 一起使用 我正在使用 FromAsyncPattern 方法进行两个 Web 服务调用 并且我想这样做同步地 var o1
  • 在一个字节中存储 4 个不同的值

    我有一个任务要做 但我不知道从哪里开始 我不期待也绝对不想要代码中的答案 我想要一些关于该怎么做的指导 因为我感到有点失落 将变量打包和解包到一个字节中 您需要在一个字节中存储 4 个不同的值 这些值为 NAME RANGE BITS en
  • 如何将整数转换为 void 指针?

    在 C 中使用线程时 我面临警告 警告 从不同大小的整数转换为指针 代码如下 include
  • 如何将自定义 JSON 文件添加到 IConfiguration 中?

    我正在使用 asp net Autofac 我正在尝试加载自定义 JSON 配置文件 并基于该文件创建 实例化 IConfiguration 实例 或者至少将我的文件包含到默认情况下构建的 IConfiguration asp net 中
  • 使用 Moq 使用内部构造函数模拟类型

    我正在尝试模拟 Microsoft Sync Framework 中的一个类 它只有一个内部构造函数 当我尝试以下操作时 var fullEnumerationContextMock new Mock
  • 有人可以提供一个使用 Amazon Web Services 的 itemsearch 的 C# 示例吗

    我正在尝试使用 Amazon Web Services 查询艺术家和标题信息并接收回专辑封面 使用 C 我找不到任何与此接近的示例 所有在线示例都已过时 并且不适用于 AWS 的较新版本 有一个开源项目CodePlex http www c
  • (de)从 CSV 序列化为对象(或者最好是类型对象的列表)

    我是一名 C 程序员 试图学习 C 似乎有一些内置的对象序列化 但我在这里有点不知所措 我被要求将测试数据从 CSV 文件加载到对象集合中 CSV 比 xml 更受青睐 因为它更简单且更易于人类阅读 我们正在创建测试数据来运行单元测试 该集
  • Process.Start() 方法在什么情况下返回 false?

    From MSDN https msdn microsoft com en us library e8zac0ca v vs 110 aspx 返回值 true 表示有新的进程资源 开始了 如果由 FileName 成员指定的进程资源 St
  • 如何在按钮单击时模拟按键 - Unity

    我对 Unity 中的脚本编写非常陌生 我正在尝试创建一个按钮 一旦单击它就需要模拟按下 F 键 要拾取一个项目 这是我当前的代码 在编写此代码之前我浏览了所有统一论坛 但找不到任何有效的东西 Code using System Colle
  • 防止在工厂方法之外实例化对象

    假设我有一个带有工厂方法的类 class A public static A newA Some code logging return new A 是否可以使用 a 来阻止此类对象的实例化new 那么工厂方法是创建对象实例的唯一方法吗 当

随机推荐

  • Azure 应用程序网关出现错误 404,但后端探测正常

    我已经设置了应用程序网关 并在我的域中添加了 CNMAME 以指向应用程序网关的 DNS 名称 应用网关最终将指向3个站点 我创建了 3 个 Web 应用程序 并将每个应用程序添加到后端池中 我最初使用默认的 HTTP 设置 appGate
  • 使用 Selenium 使用 WindowHandles 跟踪和迭代选项卡和窗口的最佳方法

    我们正在与 Selenium webdriver 合作 为 Internet Explorer 11 进行 UI 测试 在测试的 Web 应用程序中 会弹出几个屏幕 在一些测试中 我们最终得到了三个浏览器窗口 因此也得到了三个 Driver
  • Django日月事件日期查询

    我有一个 Django 模型 如下所示 class Event models Model name model CharField etc date model DateField etc 我需要的是一种获取给定日期和月份的所有事件的方法
  • 在画布中创建多个可拖动的圆圈

    我在 HTML 画布中制作多个可拖动的圆圈时遇到问题 我真的不知道我做错了什么 希望有人能指出我的错误 这里是菜鸟 所以请不要猛烈抨击 我在这里附上了我的代码 var canvas document getElementById canva
  • 使用 Kivy 检索 MySQL

    我有一个 Kivy 代码 其输出是 我想更换Box No 从 MySQL 检索字符串 到目前为止 我已经尝试将 MySQL 实现到 python 脚本中 class RemoveScreen MyLayout def init self k
  • 为什么在 Android 模拟器中单击“调试”时 React Native 应用程序会崩溃?

    在 Android 模拟器中单击 调试 时 React Native 应用程序显示错误 尝试在空对象引用上调用接口方法 java lang String com facebook react bridge Cat alystInstance
  • 不使用 + 运算符将两个数字相加的最佳方法是什么?

    我和一个朋友正在反复玩脑筋急转弯 但我不知道如何解决这个问题 我的假设是某些按位运算符是可能的 但不确定 在 C 语言中 使用按位运算符 include
  • 如何在 Visual Studio 2019 中将清单文件添加到我的 C# 程序?

    我有一个简单的应用程序 我想强制在管理模式下运行 为此 我需要编辑清单文件 我看到教程显示通过单击 项目 gt 添加 gt 新项目 来添加它 但那里没有适合我的清单文件 我尝试制作自己的文件 并将其从项目属性设置为清单文件 但我不知道在那里
  • 传递给 readFileSync 的匿名函数不返回任何数据

    我写了一个简单的JS对象 它有功能csvFileToArray 函数应返回解析后的 CSV 数组 问题是我没有传递给匿名函数的输出readFileSync test1已正确记录到控制台 但是test2 is not 这是我第一次使用 nod
  • 如何使用 bash 从 URL 字符串获取维度

    我在 mac 上使用 bash 并有一个 URL 字符串 我想从包含如下尺寸的 URL 中提取宽度和高度值 url domain com project asset 300x250 july2 url domain com project
  • 使用 Office Web Apps,您可以通过 webdav 打开文档吗?

    我们正在将旧的桌面应用程序转换为支持网络的等效应用程序 然而 有一个功能造成了困难 即编辑 MS Word 文档 当前提出的解决方案是通过 WebDAV 发布 DOC 和 DOCX 文件 并使用自定义 ActiveX 组件启动 WinWor
  • scanf 一个大的十六进制值

    我在尝试使用 scanf 从用户处获取大的十六进制数字 12 个字符 时遇到问题 它似乎只得到最后8个字符 例如 ABFFFFFFFF将变成0000FFFFFFFF 这是我的代码 unsigned long long address sca
  • datetimepicker 在单击外部时将日期设置为今天的日期

    我到处寻找这个问题的答案 但没有运气 所以现在我不得不问 我有 Trent Richardson 的日期时间选择器 由于某种原因 设置的选项非常少 当我单击外部而不选择日期时 它会自动将日期字段设置为今天的日期 有人知道发生了什么事吗 这是
  • java进程中有很多线程

    为什么一个简单的 Java GUI 应用程序要创建这么多线程 Java 使用线程来做很多事情 当然是应用程序的主线程 应用程序启动的任何线程 例如 SwingWorker Swing 有一个单独的事件调度线程以及一些其他内务线程 计时器 其
  • 解码音频和视频并处理两个流——ffmpeg、sdl、opencv

    我的目标是独立处理 mpeg 2 文件的音频和视频 并保持两个流的同步性 视频时长最多约为 1 或 2 分钟 首先 按照这个post opencv 用于读取视频 并执行处理 ffmpeg 用于音频 SDL 用于播放两者 听起来很完美 考虑到
  • 如何删除正文周围的边距空间或清除默认的 css 样式

    我诚然是一个初学者 但在发布此内容之前我也做了相当多的搜索 我的 div 元素周围似乎有额外的空间 我还想指出的是 我尝试了 border 0 padding 0 等多种组合 但似乎没有什么可以消除空白 这是代码
  • 从字符串中删除特定标记

    我必须从字符串变量中删除特定标记 例如 如果字符串变量是这样的 GUID 456709876790 我需要删除 GUID 从字符串中分离出来 只需要 456709876790 如何做呢 两种选择 当你刚刚从start 你可以很容易地使用子字
  • 在ggplot中使用geom_vline()复制图例

    我想创建这个图形 aux graf structure list lines structure c 2L 2L 1L 3L Label c h0 ic median class factor values c 21 19755 23 06
  • 将优化的埃拉托色尼筛从 Python 移植到 C++

    前段时间 我在 python 中使用了 速度极快 primesieve 我在这里找到了它 列出 N 以下所有素数的最快方法 准确地说 这个实现 def primes2 n Input n gt 6 Returns a list of pri
  • 实体框架 C# 中的反射

    我正在尝试使用反射通过实体框架进行动态选择 这个想法是 该方法将获取列名称 要搜索的每列的值以及每列的顺序作为参数 例如 public anEntity list String ColumnName String Value String