查看未正确转换为LINQ

时间:2012-04-25 13:47:59

标签: asp.net .net sql sql-server linq

使用ASP .Net(MVC Unity Framework)遇到一个真正奇怪的问题。我有一个如下视图(在此示例中简化了它):

CREATE VIEW [dbo].[V_eSummary] AS
SELECT a.ID,
a.Domain
FROM [Table1] a
GROUP BY a.ID,
a.Domain

基础表具有重复值,因此分组以获得不同的值。

在.Net中,我有以下LINQ查询:

var eSummary = from s in ctx.V_eSummary
                              select s;

而不是看到(在SQL中运行视图时显示):

ID       Domain
206080   .hello.com
206080   .this.com
206080   www.hello.com
206080   .www.hello.com
206080   .hello.zettaneer.com

我明白了:

ID       Domain
206080   .hello.com
206080   .hello.com
206080   .hello.com
206080   .hello.com
206080   .hello.com

使用SQL事件探查器,似乎正在执行正确的查询。无论出于何种原因,它都会在.Net中带来不正确的值。

任何建议都非常感谢。


根据要求,这是来自SQL profiler的代码。直接在服务器上运行它会产生正确的结果。 :S

 SELECT 
 [Extent1].[ID] AS [ID], 
 [Extent1].[Domain] AS [Domain]
 FROM (SELECT 
     [V_eSummary].[ID] AS [ID], 
     [V_eSummary].[Domain] AS [Domain]
     FROM [dbo].[V_eSummary] AS [V_eSummary]) AS [Extent1]

1 个答案:

答案 0 :(得分:1)

这不是.NET的问题。执行您在SSMS中捕获的确切查询。结果可能是相同的。

请务必在正确的数据库中执行此操作。