我有一种情况,我不明白。案件非常简单。我使用通用存储库来工作我的数据库。 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
任何人都可以帮助我?
答案 0 :(得分:1)
你必须更正你的edmx(确定你有一个)。
在您的Vw_HoursMOPJustificated实体上,并将IdKopTime,IdJustification和IdJustificationType的主键设置为true(至少)。
要检查一切是否正确,请尝试从edmx获取数据,并查看是否有正确的不同数据。
有时候(主要是视图,db中没有“真正的”主键),主键(或使每行不同的属性)被严重检索,你得到这种令人困惑的结果