[英]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_FIELD
和Convert.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.