She*_*wzy 8 .net c# linq linq-to-sql
下面是我正在使用的代码,但它回复了
方法'Boolean isUser(System.String)'没有支持的SQL转换.
有帮助吗?顺便说一句,我正在使用linq到SQL数据源
public void dataBind()
{
using (var gp = new GreatPlainsDataContext())
{
var emp = from x in gp.Employees
let k = isUser(x.ID)
where x.ActivtyStatus == 0
&& isUser(x.ID) != false
orderby x.ID
select new
{
ID = x.ID,
Name = x.FirstName + " " + x.MiddleName
};
ListView1.DataSource = emp;
ListView1.DataBind();
}
}
public static bool isUser(string ID)
{
int temp;
bool x = int.TryParse(ID, out temp);
return x;
}
Run Code Online (Sandbox Code Playgroud)
我找到了一个解决方案来查询第一个查询的结果作为对象,但这是一个很好的原因,我将通过我的数据两次.
根据Anders Abel的建议使用之后最终工作的更新代码
public void dataBind()
{
using (var gp = new GreatPlainsDataContext())
{
var emp = from x in gp.Employees
where x.ActivtyStatus == 0
&& SqlMethods.Like(x.ID, "[0-9]%")
orderby x.ID
select new
{
ID = x.ID,
Name = x.FirstName + " " + x.MiddleName
};
ListView1.DataSource = emp;
ListView1.DataBind();
}
}
Run Code Online (Sandbox Code Playgroud)
Linq-to-sql将查询转换为SQL.它只知道如何翻译一组有限的内置函数.您必须重写您的查询以不包括您自己的功能.
可以在MSDN上找到linq-to-sql支持的函数和运算符的完整列表.
您可以SqlMethods.Like()
用来检查该字段是否只包含数字.有关示例,请参阅T-SQL IsNumeric()和Linq-to-SQL.