0

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プロファイラーからのコードです。サーバー上で直接実行すると、正しい結果が得られます。: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]
4

1 に答える 1

1

これは .NET の問題ではありません。SSMS でキャプチャした正確なクエリを実行します。結果は同じである可能性が高いです。

必ず正しいデータベースでこれを実行してください。

于 2012-04-25T13:50:34.377 に答える