用户搜索屏幕的 Linq 动态查询

2023-12-15

我有一个数据库,它有一个“动态”的用户搜索屏幕,因为我可以根据搜索所基于的特定视图中可用的列动态添加其他搜索条件,并且它将允许用户使用它们立即地。以前我一直在该数据库中使用 nettiers,但现在我正在使用 RIA、EntFramework 4 和 LINQ 针对它编写一个新应用程序。

我目前有两个表用于此目的,其中一个用可用的搜索字符串模式填充组合框:

姓 姓氏、名字 电话 ETC....

然后我有另一个表将这些标准分开并在我的 nettiers 算法中使用。它工作得很好,但我想使用 LINQ..但它不太适合这个模型。此外,我想我可以用 linq 将其缩减为一张表......

使用类似于此的格式或非常接近的格式......

ID 条件Where 子句 1 LastName '姓氏如“%{0}%”

现在我知道这不适合 linq 查询。但为了清楚起见,我尝试使用通用语法...

真正的 where 子句看起来像这样: a=>a.LastName.Contains("{0}")

我的第一个问题是:这可能吗?将 lambda 输入字符串并在 Linq 查询中使用它?

我的第二个问题是:在我研究这个问题之前,我发现了一种具有类似 it.LastName{0} 前缀的 linq 语法。 我似乎尝试过使用它,因为它的痕迹仍然在我的测试数据库中......但我不记得我在哪里读到过它。

有人这样做吗?我做了一些搜索并发现了类似的情况,但它们大多具有可选的静态字段,这与我正在做的方式不完全一样......


至于你的第一个问题,你可以使用 Dynamic Linq 来完成此操作,如 Scott Gu 所描述的here

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

用户搜索屏幕的 Linq 动态查询 的相关文章

  • 非静态方法需要一个目标

    private PMS USERS currUser private bool validateUserName dbContext new PmsEntities var validateUser dbContext PMS USERS
  • 我可以将 UseCSharpNullComparisonBehavior 用于单个查询吗?

    我有一个查询 该查询曾经是存储过程 现已转换为 EF 查询 现在已经超时了 使用 SQL Profiler 我可以看到生成的 SQL 的唯一区别是 EF 转变的新行为entity Property value into entity Pro
  • EF5 和循环或多级联路径,FOREIGN KEY

    我遇到了一个奇怪的问题 我已经知道为什么通常会发生此异常 以及如何通过在其中一个属性中将 WillCascadeOnDelete 禁用为 False 来解决它 但我的问题似乎是其他类型的 这是我的代码 会员 public class Mem
  • 有没有办法将所有内容都包含在 dbcontext 中?

    当查询一个DbContext急切加载时 需要Include Navigation 为了填充导航属性 然而 在某些情况下 我想简单地Include all实体的导航属性 有没有办法做到这一点 或者有办法做到这一点 我假设你可以反思 但我宁愿避
  • 如何检查深层 lambda 表达式中的 null 值? [复制]

    这个问题在这里已经有答案了 如何检查深层 lambda 表达式中的 null 值 举例来说 我有一个嵌套了几层的类结构 我想执行以下 lambda x gt x Two Three Four Foo 我希望它在 二 三 或 四 为 null
  • LINQ to Entities 如何更新记录

    好的 我对 EF 和 LINQ 都是新手 我已经弄清楚如何插入和删除 但由于某种原因更新似乎逃脱了我的掌握 这是我的代码示例 EntityDB dataBase new EntityDB Customer c new Customer Na
  • 展平可能包含数组的对象数组

    我有一个IEnumerable其中可能包含也可能不包含一些嵌套集合 例如 我的出发点可能是这样的 foo 2 1 2 3 4 bar 我想将其压平为 foo 2 1 2 3 4 bar 我在想一个SelectMany应该在这里工作 但无法找
  • EF 5.0 中的链接 OR 条件

    我将以此为序言 我正在积极寻找这个问题的解决方案 但我想 如果堆栈上有人已经解决了这个问题 我可能会缩短一些研究和开发时间 我在网上没有找到任何东西 所以这里是 我们正在构建的应用程序框架中有一个案例 我们需要能够接受一组谓词 List
  • 在 MVC3 Razor 视图中引用 EntityFramework 4.1 命名空间

    我试图在我的 MVC3 项目中的共享视图内引用 System Data Entity Validation EF 4 1 版本 命名空间 我已经能够使用以下方式引用其他外部库 using Example Namespace 然而 当涉及到作
  • 实体框架代码优先查找与 SingleOrDefault(预加载)

    我正在使用 Entity Framework 4 2 代码优先 来访问我的数据库 我假设如果我使用查询一个实体SingleOrDefault如果实体尚未被跟踪 它只会查询数据库 但情况似乎并非如此 这Find另一方面 方法似乎确实在这样做
  • 如何通过实体键添加/删除与实体框架的多对多关系?

    I tried using Entities e new Entities EntityKey key new EntityKey Entities Users UserId 20 User user new User EntityKey
  • 在 List ForEach() 中设置多个属性?

    给定一个类 class foo public string a public int b 0 然后是它们的通用列表 var list new List
  • Oracle Developer Tools for Visual Studio 2019 无法正确安装

    在 VS 2019 中 ODT 使用扩展名安装 而不是像以前的版本那样作为安装文件安装 因此 从 VS 2017 升级的 EF 6 使用的 MVC 项目 edmx 文件在扩展安装后不显示数据库图表 空白黑页 编辑 xml 选项等 仅此而已
  • EF 迁移迁移到 0 调用初始创建关闭

    我正在尝试找出将迁移降低到空数据库的语法 就像在初始创建迁移中调用 down 方法一样 有谁知道在迁移中调用 Down 方法的正确语法与此类似 Update Database StartupProjectName Infrastructur
  • Linq-to-Entity Join 与 GroupJoin

    有人可以解释一下什么是GroupJoin is 和普通的有什么不同Join 常用吗 它仅适用于方法语法吗 查询语法怎么样 如果有 C 代码示例就更好了 行为 假设您有两个列表 Id Value 1 A 2 B 3 C Id ChildVal
  • Linq 选择与另一个表中的 ID 相等的项目

    我不确定这怎么可能 但我有两个表 我想通过表 1 的值从表 2 中获取值 表 1 有一个名为 rank 的外键 它是int 表 2 有一个名为 name 的值 它是string 现在表 1 的 排名 与表 2 的 ID 相关 所以当我说 v
  • 识别关系并插入子实体会导致“无法在表中插入标识列的显式值”

    我正在尝试在实体框架中获取可识别的关系 以便我可以使用 删除 从其集合中删除项目 我创建了一个测试 例如 public class OrderLine Key Column Order 0 public int OrderLineId ge
  • 如何使用 Linq 将实体表与交叉引用表连接起来

    首先我要说的是 我对 Linq 比较陌生 但我似乎很快就掌握了其中的大部分内容 但这个问题却难倒了我 我找了又找都没有结果 我使用代码优先并创建了 2 个模型 项目 和 关键字 他们之间存在多对多的关系 我的实体模型如下所示 public
  • LINQ 对特定属性的 Distinct()

    我正在玩 LINQ 来了解它 但我不知道如何使用Distinct https learn microsoft com en us dotnet api system linq enumerable distinct当我没有一个简单的列表时
  • 将 Lambda 表达式树与 IEnumerable 结合使用

    我一直在尝试了解有关使用 Lamba 表达式树的更多信息 因此我创建了一个简单的示例 这是代码 如果作为 C 程序粘贴到 LINQPad 中 它可以工作 void Main IEnumerable

随机推荐