sql - 将 LINQ to SQL 与动态表一起使用

标签 sql linq dynamic

我正在尝试将一个旧项目迁移到使用 LINQ,但我遇到了一个非常大的问题。问题是我们有动态表
用于搜索索引(具有动态属性的 CM 系统)。搜索索引为每个可搜索的属性 { attribute_x, attribute_y, ... } 提供列。
现在的问题是我无法静态定义哪些列可用(甚至在我们划分搜索索引时使用哪个表),所以我需要一种方法来动态地做到这一点。

我曾尝试使用动态表达式,但它们仍然需要一个类型来构建表达式,而且我无法通过反射生成有效类型。 (似乎没有生成 MemberInfo)。

我也可以满足于能够生成用于搜索的表达式(但我想这不是更容易的任务)。类似的东西

var mySearchIndex= db.GetTable(myTableType);
var query = from p in db.Products from idx in mySearchIndex;
查询 = 查询。哪里(
“身份证。” + 属性名称 + "> 50.0 &&
idx."+ 属性名称 + "

将是可取的。

有没有人遇到过这个问题的解决方案?过去两天我一直在浏览博客文章和论坛,但徒劳无功。

最佳答案

我不相信有使用 LINQ 的解决方案。至少不是我听说过或发现过的。如果表结构发生变化并且您每次都必须重新创建 DataModel,则 LINQ 会中断。

如果我不正确,我很想听到它。 :)

关于sql - 将 LINQ to SQL 与动态表一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/714401/

相关文章:

c# - LINQ - 从 ObjectModel 列表中获取 ID 列表时遇到问题

go - go中动态调用模型

c# - 反射(reflection)动态类型以判断它是否是动态类型,首先

Android,如何从 UI 中删除 View ?

java - 正确为具有未知值的 SQL MATCH 准备的语句

sql - PostgreSQL - 在窗口函数中引用另一个聚合列

c# - 为 BindingListView<T> 启用 LINQ

asp.net - 简单DeleteAll上的 Entity Framework "The wait operation timed out"

java - Hibernate实体生成奇怪的sql并尝试保存重复的条目

sql - Postgresql:从第一个表中选择或替换为第二个表中的数据