簡體   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