繁体   English   中英

实体框架将字符串转换为Int

[英]Entity Framework Convert String to Int

在查询的where子句中,我试图将具有数字类型varchar的列与预定整数进行比较。 我想要大于预定数量的那些。

根据我的研究,不可能这样做,因为标准函数在SQL中不可用。

谁能建议我可以做到这一点的方法?

***中的那一行是我尝试进行比较的地方。 SVNREVISION是存储数字字符的字符串。

.Where(
    @t =>
    @t.@t.@t.@t.a.MAINTBRANCH == 197 && @t.e.FIELDID == 106011301 ***&& @t.@t.@t.@t.a.SVNREVISION > 42544***
    && (@t.@t.@t.@t.a.CSEBRANCHCHANGE ?? "") != ""
    && !(@t.@t.@t.@t.a.CSEBRANCHCHANGE ?? "").Contains("DF"))
.Select(
    @t =>

不幸的是,我无法更改SVNREVISION的数据类型。

您必须在内存中进行过滤而不是将其转换为SQL语句。 您可以通过Where添加ToList()调用Where方法之前 ,强制Entity Framework对表达式求值来完成此操作:

.ToList()
.Where(
    @t =>
    @t.@t.@t.@t.a.MAINTBRANCH == 197 && @t.e.FIELDID == 106011301 && Convert.ToInt32(@t.@t.@t.@t.a.SVNREVISION) > 42544
    && (@t.@t.@t.@t.a.CSEBRANCHCHANGE ?? "") != ""
    && !(@t.@t.@t.@t.a.CSEBRANCHCHANGE ?? "").Contains("DF"))
.Select(
    @t =>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM