标签: system.linq.dynamic

System.Linq.Dynamic和DateTime

我正在使用System.Linq.Dynamic在.Net MVC 1.0中执行ajax调用的自定义where子句.

它适用于字符串,int等但不适用于DateTime,我得到的异常无法将String与DateTime进行比较.非常简单的测试代码是

items = items.Where(string.Format(@"{0}> {1} {2} {1}",searchField,delimiter,searchString));

其中searchField将是例如start_date,数据类型是DateTime,分隔符是"(没有尝试过),searchString将是2009年1月1日(也在01/01/2009尝试过),并且items是一个IQueryable来自LinqToSql.

有没有办法在动态中指定数据类型,或者有更好的方法.它目前已经使用一些反射来确定需要什么类型的分隔符.

c# linq dynamic system.linq.dynamic

12
推荐指数
2
解决办法
1万
查看次数

System.Linq.Dynamic:如何保证Parse函数中的参数顺序?

在下面的代码中,我成功地在C#中使用Microsoft的System.Linq.Dynamic来评估类似于Javascript的字符串表达式eval().但是,在调用新函数时 ,我无法弄清楚如何保证参数名称和相应的值匹配."SKU + \" \" + Name"可以像回归1234 Cola一样容易Cola 1234.我有几十个参数.

System.Dynamic.Linq的Parse方法用于Dictionary<string,object>在内部保存参数,这是我的问题,因为Dictionary不保证像数组和列表这样的顺序. 我假设因为Microsoft选择使用Dictionary,必须对下面的代码进行一些简单的修复,以确保参数值匹配. 代码在LinqPad中输入.

命名参数可能像Name: "Cola", SKU: "1234"?是否有一些数据类型或技术可用于保证参数名称和值匹配?这是否需要更改Microsoft的代码才能替换Dictionary?

var symbols = new Dictionary<String, Object>();         // Cannot change symbols datatype
var paramExp = new List<ParameterExpression>();
var paramVal = new List<String>();

var fields = new Dictionary<String,String>();                              // Sample Data
fields["SKU"] = "1234";
fields["Name"] = "Cola";
fields["Type"] = "Drink";
var expression = "SKU + \" \" + …
Run Code Online (Sandbox Code Playgroud)

c# system.linq.dynamic

6
推荐指数
0
解决办法
81
查看次数

标签 统计

c# ×2

system.linq.dynamic ×2

dynamic ×1

linq ×1