0

我在 DBML 中使用视图,在大多数情况下,它映射到表。我有与 EVENTCODE 视图相关的 CR 视图。我将上下文设置为将 SQL 记录到 Console.Out,然后直接针对 DB 运行生成的 SQL。我拿回了 3 条记录。但是当我在 Linq to SQL 中运行选择时(在上下文中设置 LoadOptions 以绑定到 EVENTCODE 表),我在 CR.EVENTCODEs 中只有 1 条记录。视图之间的联系是正确的(与数据库中的相同)。我可以调用 context.EVENTCODEs.Where... 我也得到 3 条记录。但是通过 CR 对象拉取相关的 EVENTCODE 记录只返回 1。我还应该检查什么?

4

1 回答 1

0

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

于 2013-02-26T19:40:45.403 回答