2012-04-24 7 views
1

linqがクエリから行を削除する場所は誰にも見えますか?Linqがストアドプロシージャとインラインクエリから行を削除する

私は、データベースを照会する場合

は何Iである、 '2012年4月16日' と '2012年4月22日'

間flowdateが、私は戻って29件のレコードを取得staging_flowratesから選択*期待するだろう。

私がlinqでこの手順を呼び出すと、25レコードが得られます。私は非常に多くの異なった方法をやったし、彼らはすべての帰りの結果は以下の29

List<weekly_invoice_dataResult> meterdata = flowRateDB.weekly_invoice_data(173, date.AddDays(-8), date.AddDays(-2)).ToList();} 

または

var meters = from c in flowRateDB.staging_flowrates 
      where c.FlowDate >= date.AddDays(-8) && c.FlowDate <= date.AddDays(-2) 
      select c; 

は、これらすべては、25行を返しますが、私は戻ってADOへ行くと、カウントIをすれば私は約6年間linqを使ってきましたが、私はこれまで気づいていません。

マット

+1

どのように 'date'を取得しますか?それは時間成分を持つことができます!= 0?おそらく、日付の代わりに '(new Date(2012,4,24))'というクエリを試してください。 – HugoRune

+0

@HugoRuneは何かを持っていると思います。この矛盾は、データベース(L2Sが主キーとして認識するフィールド)の一意でないキー値によっても発生する可能性があります。 –

答えて

0

私は、SQL Server Profilerを起動し、実行された正確なSQLを取得することをお勧めします。このSQLを持ってSSMSであなた自身で実行してください。私の推測では、実行されたクエリは何らかの形で間違っているため、その理由を見ることができます。

LINQは行を削除していません。その理由は、SQLが実行されるためです。

関連する問題