1

状況があり、理解できません。ケースはとてもシンプルです。汎用リポジトリを使用して DB を操作します。http://efgenericrepository.codeplex.com/すべてが非常にうまく機能しますが、今は 1 つのビューだけで問題が発生します。クエリを実行すると、EFは単語データを返すと思います。

これは、SQL Manager での私の SQL の結果です。

Select * 
from Vw_HoursMOPJustificated 
where IdUser = 20 
and ActionDate = '2012-08-22' and Hour < 24

IdMopTime | IdJustification | IdJustificationType

44      30                 8
44      40                11
44      43                13
45      31                 8
45      41                12
46      32                 8

これは、この単純なコードを C# 内で実行したときの結果です。

MyIGFEntities entity = new MyIGFEntities();

var table = new Repository<MyIGF.Models.Vw_HoursMOPJustificated>(new MyIGFEntities())
    .Find(x => x.ActionDate == ActionDate && x.IdUser == IdUser && x.Hour < 24);

IdMopTime | IdJustification | IdJustificationType
44 | 30 | 8
44 | 30 | 8
44 | 30 | 8
45 | 31 | 8
45 | 31 | 8
46 | 32 | 8

誰でも私を助けることができますか?

4

1 に答える 1

1

edmx を修正する必要があります (持っていることを確認してください)。

Vw_HoursMOPJustificated エンティティで、(少なくとも) IdMopTime、IdJustification、および IdJustificationType のプライマリ キーを true に設定します。

すべてが正しいかどうかを確認するには、edmx からデータを取得して、正しい個別のデータがあるかどうかを確認してください。

場合によっては (主に、db に「実際の」主キーを持たないビューで)、主キー (または各行を区別するプロパティ) が正しく取得されず、この種の紛らわしい結果が得られます。

于 2012-09-04T09:44:08.810 に答える