如何在linq where子句中将int与字符串进行比较[重复]
Posted
技术标签:
【中文标题】如何在linq where子句中将int与字符串进行比较[重复]【英文标题】:How to compare int with string in linq where clause [duplicate] 【发布时间】:2016-03-24 21:15:30 【问题描述】:我有一个string
参数,我想将它与Linq query
中的int
和string
进行比较。
var query=(from GRD in _tblMembers.GetQueryable()
select new MembersModel
SchoolID = GRD.SchoolID,
MemberID = GRD.MemberID,
MemberReferenceID = GRD.MemberReferenceID,
MemberTypeID = GRD.MemberTypeID,
MemberNo = GRD.MemberNo,
MemberName = GRD.MemberName,
CellNo = GRD.CellNo,
).Where(z => z.MemberName.Contains(param.sSearch) || z.MemberTypeID.Contains(param.sSearch)).ToString();
当我尝试使用ToString()
方法将数据库参数转换为字符串类型时,如下所示。
.Where(z => z.MemberName.Contains(param.sSearch) || z.MemberTypeID.ToString().Contains(param.sSearch)).ToString();
linq 抛出运行时异常。
LINQ to Entities 无法识别方法 'System.String ToString()' 方法,并且这个方法不能翻译成store 表达。
如何在 linq 查询中进行覆盖。
【问题讨论】:
【参考方案1】:您可以使用SqlFunctions.StringConvert
.Where(z => z.MemberName.Contains(param.sSearch)
|| SqlFunctions.StringConvert((double)z.MemberTypeID).Contains(param.sSearch))
.ToString();
【讨论】:
var query = (from c in ctx.A where c.ID==cl select new Accoun ex = c.Type ).Distinct();
这里cl
是int
而c.ID 是string
但我想以int
格式比较它们。我试过where Convert.ToInt32(c.ID)==cl
,但得到invalid where condition
错误以上是关于如何在linq where子句中将int与字符串进行比较[重复]的主要内容,如果未能解决你的问题,请参考以下文章
为啥不能使用 SqlFunctions 在 LinQ 中将 int 转换为字符串?
如何在 Laravel 中将两个分组的 whereIn 子句与 Where not 组合
MongoDB+C#+IQueryable - 有一个字符串数组以及如何在 Where 子句中将其加入 Mongos 集合