C# SQL到Linq-->选择最大值和最小值
我试图获得一个特定IP地址的国家/地区,IP在数据库中以长整数存储 我有以下SQL查询:C# SQL到Linq-->选择最大值和最小值,c#,sql,linq,C#,Sql,Linq,我试图获得一个特定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
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
)
我正在努力:
//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);
我想把它转换成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
什么类型的IP_From和IP_To?你能提供你在c中尝试过的东西吗?@Grundy说了什么,另外你能添加一个你正在查询的数据样本吗?@Yann ok:-现在展示一下你如何使用c中的dbcode@Yann你的代码不工作?
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