簡體   English   中英

ADO.NET 實體框架:在 Where/OrderBY 中將字符串轉換為 Int

[英]ADO.NET Entity Framework: Converting String to Int in Where/OrderBY

我正在針對 ObjectContext 編寫 LINQ 查詢。 我在 LINQ 到實體中基本上需要做的是(我知道這行不通,但我這樣做是為了說明):

from c in context.Table
where key == int.Parse(c.KeyAsString)
order by int.Parse(c.KeyAsString)
select c

我不確定這是否可能......有人知道方法嗎?

謝謝。

反過來試試。 我假設“key”是一個變量 int,因此使用 ToString() 將其轉換為字符串,並使用它與 KeyAsString 進行比較,並且按不使用轉換的順序:

var keyString = key.ToString();
var query = from c in context.Table
where keyString == c.KeyAsString
order by c.KeyAsString
select c

如果您使用ToList()ToArray()之類的方法將結果提取到 memory 中,您將能夠轉換為 int 或使用自定義比較器。

這不是看起來最干凈的解決方案,但只要您的所有字符串都是有效整數,它就可以工作。 這也可以與雙打一起使用

var query = from c in context.Table
            let IntOrder = context.Table.Take(1).Select(x => c.KeyAsString).Cast<int>().FirstOrDefault()
            where IntOrder == key
            orderby IntOrder
            select c; 

暫無
暫無

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

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