动态LINQ Cast问题

时间:2013-10-25 00:01:23

标签: c#-4.0 entity-framework-4 casting dynamic-linq

当我尝试使用动态linq(来自此link)执行此ESQL(Cast int to string)时

queryable.Where("CAST(PositionID AS Edm.String).Contains(@0)", paramsObj); //PositionID is Int32

它抛出异常

')' or ',' expected

我的实体框架版本是4.0。知道如何解决这个问题吗?

提前致谢,

布赖恩

1 个答案:

答案 0 :(得分:0)

你不能在函数调用中使用as,尝试改变你的代码

queryable.Where("(PositionID.ToString().Contains(@0))", paramsObj); //PositionID is Int32

<强>更新

在您的情况下,最有可能必须使用db

中的自定义函数

更新2:
我认为你不能使用动态LINQ的esql,因为它通过自我规则解析字符串条件,因此动态LINQ语法edsl可能是错误的,也不是所有SQL结构都在LINQ to Entities中实现,所以如果你想使用{{1您必须使用仅适用于字符串
like operator函数 因此,为了解决这个问题,您可以使用存储过程和函数,或eSQL命令或原始SQL