1
我有一个linq实体调用Inquiry,它有一个属性:string DateSubmitted。Linq到EF表达式树/谓词int.Parse解决方法
我正在写一个应用程序,我需要返回IQueryable查询有一个DateSubmitted在一个特定的日期范围内。
理想我想写点东西像
IQueryable<Enquiry> query = Context.EnquirySet.AsQueryable<Enquiry>();
int dateStart = int.Parse("20090729");
int dateEnd = int.Parse("20090930");
query = (from e in query
where(enq => int.Parse(enq.DateSubmitted) < dateEnd)
where(enq => int.Parse(enq.DateSubmitted) > dateStart)
select e);
显然LINQ到EF不承认int.Parse,所以我想我可以实现我想返回谓词的表达方法? ??
我一直在使用PredicateBuilder玩,并且遍地看,但我已经成功地炒我的大脑,试图解决这个问题。当然,我可以添加另一个属性到我的实体并将其转换,但我真的很想了解这一点。任何人都可以解释或给出一个不会让我大脑绞痛的例子/链接吗?
在此先感谢
马克
这是一个很好的解决方法,谢谢我可能会使用它,谢谢! 据我所知,有没有一种方法与Predicate做这种比较?我正在慢慢把我的脑袋弄到这个地方:-) – Mark 2009-09-30 15:36:53
那么你是用一个谓词来开始吧。我不知道我真的明白这个问题... – 2009-09-30 15:51:14
乔恩 我想我正在寻找一种更通用的方式,可以在需要类型转换时比较值。我有情况下的实体属性暴露为枚举和字符串需要与int进行比较。 我认为从看PredicateBuilder我可能会写一个通用的一组方法,例如可以做一个小于或大于比较将输入类型转换为所需的类型。 请原谅我缺乏知识,我理解Linq的基本知识,但我试图让我的头围绕扩展方法,Expresison树和Predicates。 – Mark 2009-10-01 07:44:50