[英]SQL to Linq --> select max and min
我試圖獲取特定IP地址的國家/地區,該IP按范圍(長整數)存儲在數據庫中
我有以下SQL查詢:
select * from dbo.ip
where IP_From = ( select max(IP_From)
from dbo.ip
where IP_From <= @ipAddress
)
and IP_To = (
select min(IP_To)
from dbo.ip
where IP_To >= @ipAddress
)
數據庫中的數據
IP_From IP_To Registry
16777728 16778239 apnic 1302739200 CN CHN China
16778240 16779263 apnic 1302566400 AU AUS Australia
16779264 16781311 apnic 1302566400 CN CHN China
16781312 16785407 apnic 1302566400 JP JPN Japan
16785408 16793599 apnic 1302566400 CN CHN China
16793600 16809983 apnic 1302566400 JP JPN Japan
16809984 16842751 apnic 1302220800 TH THA Thailand
我正在努力 :
//string strHttpClientIP = System.Web.HttpContext.Current.Request.UserHostAddress;
string strHttpClientIP = "58.8.247.169";
var splitIP = strHttpClientIP.Split('.');
var a = splitIP[0];
var b = splitIP[1];
var c = splitIP[2];
Int64 intIPFrom = FunctionsGlobal.IP2Int(Convert.ToString(a + "." + b + "." + c + ".0"));
Int64 intIPTo = FunctionsGlobal.IP2Int(Convert.ToString(a + "." + b + "." + c + ".255"));
var IPList = db.IpToCountries;
var MaxIpFrom = IPList.Max(i => i.IP_From);
var MinIpTo = IPList.Min(i => i.IP_To);
var QueryCurrency = IPList.Where(i=>i.IP_From == MaxIpFrom && i.IP_To == MinIpTo);
哪個ID喜歡轉換為Linq C#查詢,有任何線索嗎?
像這樣的東西
from ip in IPList
let maxIp = IPList.Where(a=>a.IP_From <= ipAddress).Max(a=>a.IP_From)
let minIp = IPList.Where(a=>a.IP_To >= ipAddress).Min(a=>a.IP_To)
where ip.IP_From == maxIp && ip.IP_To == minIp
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.