为什么sql server查询返回结果而linq查询不是

时间:2017-01-03 16:24:35

标签: c# sql-server linq

我有一个没有返回结果的linq查询

PermitsList = (from n in context.Permits
              join d in context.TrafficDisruptions on n.GUID equals d.PermitGUID
              select n);

我知道这个sql查询确实返回了预期的结果

SELECT * FROM [KEPT].[dbo].[Permit] p join TrafficDisruption d on p.GUID = d.PermitGUID

有关为何会发生这种情况的任何想法吗?

由于

1 个答案:

答案 0 :(得分:4)

如果您的GUID在模型中被表示为字符串,则可能会遇到区分大小写的LINQ to Entities中的错误。

如果连接字符串字段并且字符串的情况不同,则SQL将返回正确的结果(假设数据库的排序规则不区分大小写)但LINQ将无法正确匹配外键。这在查询和导航属性中都会发生。

这可能不是你的问题,但可能需要注意。