我正在使用DBML中的视图,它在大多数情况下映射到表。 我有一个与EVENTCODE视图相关的CR视图。我设置上下文以将SQL记录到Console.Out,然后直接运行针对数据库生成的SQL。我有3条记录。 但是当我在Linq中运行select to SQL(在上下文中设置LoadOptions以绑定EVENTCODE表)时,我在CR.EVENTCODE中只有1条记录。 视图之间的关系是正确的(与数据库中的相同)。我可以调用context.EVENTCODEs.Where ...我也会收到3条记录。但是通过CR对象拉出相关的EVENTCODE记录只返回1。 我还应该检查什么?
答案 0 :(得分:0)
问题是,在EVENTCODE视图中标识为主键的字段未唯一标识视图中的记录。返回的3条记录都具有相同的密钥值,因此EntitySet添加了第一条记录,并忽略了后续记录,因为它们具有与集合中的密钥相同的密钥。 我更改了视图以使用组合键(跨4个字段),现在相关记录编号为3。