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