簡體   English   中英

如何在Linq中對實體進行SELECT CONVERT(bigint,some_field)

[英]How to do SELECT CONVERT(bigint,some_field) in Linq to Entities

我有一個看起來像的SQL查詢

SELECT CONVERT(BIGINT, MY_TABLE_FIELD)
FROM SOME_TABLE
WHERE [CONDITIONS]

我需要將字符串MY_TABLE_FIELD轉換為Linq中的長值字段。

我已經在Linq表達式的select子句中嘗試使用long.tryParse(long)MY_TABLE_FIELDConvert.ToInt64(MY_TABLE_FIELD)

我已經讀過關於轉換值的方法,但是我得到了錯誤。 而且我不想使用lambda表達式。

我能做什么?

假設您的值實際上可以轉換為long ,那么您應該可以這樣做:

from context.SOME_TABLE
where ...
select Convert.ToInt64(row.MY_TABLE_FIELD)

如果值不能轉換為long s,則可能要考慮從數據庫中選擇字符串,然后根據更復雜的業務邏輯對值進行后處理。

(如果這不起作用,請提供您得到的錯誤消息,以及數據庫的更多詳細信息,等等。)

感謝StriplingWarrior的回答。

發布問題后幾分鍾,我找到了解決方案。

我在這里分享。

LINQ

var MyList = (from ta in model.Table
              select new MyClass
              {
                   StringFieldID = ta.StringFieldID,
                   OtherField = ta.OtherField
              }).ToList();

我在類MyClass Code上所做的工作

public class MyClass
{
    private string _StringFieldID;
    public long LongFieldID { set; get; }


    public string OtherField{set;get;}
    public string StringFieldID{
        set
        {
            _StringFieldID= value;
            LongFieldID= long.Parse(_StringFieldID);
        }
        get
        {
            return _StringFieldID;
        }
    }
}

因此,每次Linq查詢為StringFieldID設置值時,都是進行轉換的類。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM