问题标签 [dynamic-linq]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
233 浏览

web-applications - dlinq 与 ADO.NET 实体框架

我即将完成我的 web 应用程序的设计,我将它构建为一个 n 层架构,并且我提出了使用 DLinq 与 EFM 的问题。如果有人能给我一些专家建议,我将不胜感激。

0 投票
4 回答
29112 浏览

.net - LINQ 中的动态 where 子句 - 列名在运行时可用

免责声明:我已经使用 System.Linq.Expressions 中的表达式解决了这个问题,但我仍在寻找更好/更简单的方法。

考虑以下情况:

需要对照列入黑名单的术语检查的列/属性仅在运行时对我可用。如何生成此动态 where 子句?

另一个复杂情况是 Queryable 集合(上面的 db.Customers)被输入到基类“Customer”(比如“Person”)的 Queryable 中,因此不能像上面那样编写 c.Address。

0 投票
1 回答
1634 浏览

linq-to-sql - 没有 .InsertOnSubmit(...) 的情况下插入 LINQ- 实体?

我在使用 LINQ 时遇到了一个有趣的问题。当我实例化一个实体时,在 DataContext 上调用 .SubmitChanges() 将在数据库中插入一个新行 - 而无需调用 .Insert[All]OnSubmit(...)。

运行上面的代码将在数据库中插入一个新行。我在编写应用程序来解析 XML 文件并填充一些表时注意到了这种效果。当我只期望大约 50 个左右时,我注意到有 1000 多个插入 - 然后我终于隔离了这种行为。

如何防止这些对象被隐式持久化?

谢谢,-查尔斯

0 投票
3 回答
2239 浏览

c# - 具有直接用户输入的动态 LINQ,有什么危险吗?

我在 ASP.NET MVC 应用程序中有一个表,我想使用 AJAX 对其进行排序(服务器端)和过滤。我希望它在其他地方相当容易使用,并且不想将排序和过滤硬编码到查询表达式中,所以我寻找一种动态构建表达式的方法,我发现最好的方法是使用 Dynamic LINQ .

来自如下 URL 的用户输入直接插入到动态 Where 或 OrderBy。

这将导致两个表达式:

虽然我知道它不会直接扔到数据库中并且在此处插入直接 SQL 将不起作用,因为它不能反映到属性并且它是类型安全的,我想知道是否有人比我更有创意无论如何都可以找到一种利用它的方法。我能想到的一个利用是可以对表中不可见的属性进行排序/过滤,但这并不是那么有害,因为它们仍然不会显示并且可以通过散列来防止。

我允许直接用户输入的唯一方法是使用 OrderBy 和 Where。

只是确保,谢谢:)

0 投票
1 回答
2280 浏览

asp.net-mvc - 基于角色成员或数据关系(所有权)的 ASP.NET MVC 授权

我想扩展 ASP.NET MVC 中的 AuthorizeAttribute 以便它支持基于用户角色成员身份或相关数据的“所有权”的用户授权的概念。我正在使用 LINQ2SQL 进行数据访问。在asp.net mvc authorization using roles有一个类似的问题。

我在想的是向我扩展的 AuthorizeAttribute 类添加 EntityProperty、UserProperty、RouteParameter 和 JoinTableType 参数。前两个将是连接表中要检查的属性的名称。RouteParameter 将是要为要匹配的 EntityProperty 的值提取的路由参数的名称。我会使用当前用户名从用户表中获取用户 ID。JoinTableType 参数将是数据上下文中表的类型,其中包含路由参数值和用户 ID 必须匹配的实体和用户属性。

基本思想是,在伪代码中:

相关测试如下所示:

我的问题是如何在构建 LINQ 查询时使用类型和属性名称?或者我将不得不通过object反思来完成这一切。我真的在寻找有关如何使这更容易的想法,因此其他建议也会受到赞赏。我更喜欢使用该属性,而不是将检查直接嵌入到操作中,以使其与我处理其他操作的方式保持一致。

0 投票
3 回答
9424 浏览

linq - 基于组合框值构建动态 LINQ 查询

我在 Silverlight 中有一个组合框。它具有由我的一个 LINQ-to-SQL 对象(即名称、地址、年龄等)的属性构建的一组值。我想根据组合框中选择的值过滤我的结果。

示例:假设我希望每个人都姓“Smith”。我会从下拉列表中选择“姓氏”,然后在文本框控件中输入 smith。通常我会写一个类似于...的LINQ查询

var query = from p in collection
where p.LastName == textbox.Text
select p;

是否可以动态决定属性,也许使用反射?就像是

var query = from p in collection
where p.(DropDownValue) == textbox.Text
select p;

0 投票
1 回答
879 浏览

dynamic-linq - 使用属性的动态 LINQ 查询

我已经成功地让 MSFT Dynamic Linq 的东西工作了,但现在我需要创建一个包含属性的“Where”子句。

我得到的错误是“不存在适用的聚合方法'First'”

这是我的代码:

这是我的 XML

0 投票
2 回答
1099 浏览

c# - 如何使用 Dynamic Linq 命名字段?

我有一个巨大的动态查询,但我希望选择语句不输出列名,而是自定义值。例如,如果我在做一个普通的 Linq 查询,我可以这样做:

这会给我很好的 '.name' 和 '.price' 访问器

但如果我使用的是 Dyanmic Linq,我可以这样做:

工作正常,但是

我收到一个错误: “类型‘项目’中不存在属性或字段‘名称’”

这可以做到吗?

0 投票
3 回答
569 浏览

c# - 如何在 LINQ 中使用项目列表执行 Contains()?

我想构建一个 dlinq 查询来检查标题中是否包含任意数量的项目。我知道您可以.Contains()使用列表,但我需要检查标题是否包含任何项目,而不是项目是否包含标题的一部分。例如:我在列表“培根、鸡肉、猪肉”中有三个项目。我需要“鸡屋”的标题来匹配。

如果我尝试前 2 个答案,我会收到错误消息"Local sequence cannot be used in LINQ to SQL implementation of query operators except the Contains() operator."

第三个解决方案给了我

方法 'System.Object DynamicInvoke(System.Object[])' 不支持对 SQL 的转换。”

0 投票
1 回答
368 浏览

linq-to-sql - 如何使用 LINQ to SQL 在运行时提供表名?

我必须使用 LINQ to SQL 以及纯 SQL 经典查询。这个 SQL 查询有我的数据将从中生成的表,但我以前不知道这个表。它将在编译时知道。

那么如何让 LINQ 从我想要查询的表中理解呢?