EF可能带有返回查询的Bug

时间:2012-09-04 08:52:12

标签: c# sql entity-framework

我有一种情况,我不明白。案件非常简单。我使用通用存储库来工作我的数据库。 http://efgenericrepository.codeplex.com/一切都很顺利,但现在只有一个视图我遇到了问题。我认为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

任何人都可以帮助我?

1 个答案:

答案 0 :(得分:1)

你必须更正你的edmx(确定你有一个)。

在您的Vw_HoursMOPJustificated实体上,并将IdKopTime,IdJustification和IdJustificationType的主键设置为true(至少)。

要检查一切是否正确,请尝试从edmx获取数据,并查看是否有正确的不同数据。

有时候(主要是视图,db中没有“真正的”主键),主键(或使每行不同的属性)被严重检索,你得到这种令人困惑的结果