2013-02-26 143 views
0

我在DBML中使用视图,大部分视图都映射到表。 我有与EVENTCODE视图相关的CR视图。我将上下文设置为将SQL记录到Console.Out,然后运行直接针对数据库生成的SQL。我收到3条记录。 但是,当我在Linq中运行select到SQL(在上下文上设置LoadOptions以配合EVENTCODE表)时,我在CR.EVENTCODE中只有1条记录。 视图之间的联系是正确的(与在数据库中相同)。我可以调用context.EVENTCODEs.Where ...并且还获得3条记录。但通过CR对象提取相关的EVENTCODE记录只返回1. 我还应该检查什么?Linq to SQL丢失记录

回答

0

问题在于EVENTCODE视图上标识为主键的字段没有唯一标识视图中的记录。所有返回的记录都具有相同的键值,因此EntitySet正在添加第一条记录,并忽略后续记录,因为它们具有与集合中相同的键。 我将视图更改为使用组合键(跨4个字段),现在相关记录编号为3.