Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在LINQ中执行字符串比较的问题_C#_.net_Sql_Linq - Fatal编程技术网

C# 在LINQ中执行字符串比较的问题

C# 在LINQ中执行字符串比较的问题,c#,.net,sql,linq,C#,.net,Sql,Linq,我无法让LINQ将某些内容转换为我需要的查询。在T-SQL中,我们对三个CHAR(6)列进行=比较。LINQ不会允许我这么做的,因为 运算符'尝试: var-zipLinqQuery= 从db.ZIPMASTERs中的z开始 其中z.CORP==12 &&z.ZIPBEG.比较(“85546”)=0 选择z; 我不知道String.CompareTo在LINQ到SQL中工作,但这是第一件要尝试的事情 (通常,您应该使用StringComparer来指定正确的比较类型,但我怀疑在这种情况下Com

我无法让LINQ将某些内容转换为我需要的查询。在T-SQL中,我们对三个CHAR(6)列进行=比较。LINQ不会允许我这么做的,因为

运算符'尝试:

var-zipLinqQuery=
从db.ZIPMASTERs中的z开始
其中z.CORP==12
&&z.ZIPBEG.比较(“85546”)=0
选择z;
我不知道String.CompareTo在LINQ到SQL中工作,但这是第一件要尝试的事情


(通常,您应该使用StringComparer来指定正确的比较类型,但我怀疑在这种情况下CompareTo是更好的选择。)

这确实有效,但有没有办法从中生成通用扩展方法?我玩了一会儿,但没能想出任何L2S可以翻译的东西。我为无数的人工作过。
SELECT * 
FROM [ZIPMASTER] zm
WHERE zm.CORP = 12 
AND '85546 ' BETWEEN zm.ZIPBEG AND zm.ZIPEND
SELECT *
FROM [ZIPMASTER] zm
WHERE zm.CORP = 12
AND zm.ZIPBEG <= '85546 '
AND zm.ZIPEND >= '85546 '
var zipLinqQuery =
    from z in db.ZIPMASTERs
    where z.CORP == 12
    && z.ZIPBEG <= "85546 "
    && z.ZIPEND >= "85546 "
    select z;
List<ZIPMASTER> zips = zipLinqQuery.ToList<ZIPMASTER>();
WHERE '85546B' BETWEEN '85546A' AND '85546D'
var zipLinqQuery =
    from z in db.ZIPMASTERs
    where z.CORP == listItem.CORP
    && z.ZIPBEG.CompareTo(listItem.ZIPCODE) <= 0
    && z.ZIPEND.CompareTo(listItem.ZIPCODE) >= 0
    select z;
DECLARE @p0 INT, @p1 CHAR(6), @p2 CHAR(6)
SET @p0 = 12
SET @p1 = '85546 '
SET @p2 = '85546 '

SELECT [t0].[CORP], [t0].[ZIPEND], [t0].[ZIPBEG], [t0].[CITY], [t0].[STATE], [t0].[CYCLE]
FROM [dbo].[ZIPMASTER] AS [t0]
WHERE ([t0].[CORP] = @p0) AND ([t0].[ZIPBEG] <= @p1) AND ([t0].[ZIPEND] >= @p2)
var zipLinqQuery =
    from z in db.ZIPMASTERs
    where z.CORP == 12
    && z.ZIPBEG.CompareTo("85546 ") <= 0
    && z.ZIPEND.CompareTo("85546 ") >= 0
    select z;