船长明显在哪里? SQL视图未返回正确的结果

时间:2017-01-05 14:31:47

标签: sql views

答案可能是盯着我看,但我显然需要有人向我指出。

好的,我会尝试尽可能简洁明了。

我正在使用C#和SQL Server 2012并尝试从SQL视图中进行选择并将结果集作为列表返回。我得到了结果,但他们并不完全是应该的结果。我使用相同的SQL Server视图,使用两种不同的方式从视图中选择传递相同的参数。一个使用lambda而另一个使用SqlQuery<>

结果集不正确:

agentEmailLicRegions = _db.vGetRegionAlerts
                          .Where(x => x.region == region && x.titlealerts == true)
                          .OrderBy(o => o.Email)
                          .ToList();

执行上述调用,我在SQL Server探查器中捕获它:

enter image description here

我可以获取捕获查询并在SSMS中运行它并返回正确的结果集。但是,在代码中运行SQL调用时返回的结果不正确。有些结果缺失,有些结果重复。

以下是两个不同结果集的快照。

错误结果:

enter image description here

结果:

enter image description here

返回正确的结果集:

agentEmailLicRegions = _db.Database.SqlQuery<vGetRegionAlert>("select * from vGetRegionAlerts where region = '" + region + "'" + " and titlealerts=1 ORDER BY EMAIL").ToList();

如果需要,我很乐意提供更多信息。对我而言,关键点是从lambda表达式触发的捕获的SQL查询可以在SSMS中成功执行。这令我感到困惑。

0 个答案:

没有答案