![](/img/trans.png)
[英]Convert string to int in an Entity Framework linq query and handling the parsing exception
[英]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.