【发布时间】:2011-02-26 20:20:21
【问题描述】:
我正在尝试了解实体框架,并且我有一个表“用户”和一个表“页面”。这些与联结表“UserPages”以多对多关系相关。首先,我想知道我是否使用多对多正确设计了这种关系:一个用户可以访问多个页面,并且每个页面都可以被多个用户访问......,所以我使用正确many2many?
其次,更重要的是,据我了解 m2m 关系,User 和 Page 表不应重复信息。 IE。每个用户和每个页面应该只有一个记录。但是在实体框架中,我如何能够为同一用户添加对同一页面的新访问?也就是说,我想我可以简单地使用 LINQ 查询返回的 IEnumerable 上的 Count() 方法来获取用户访问某个页面的次数。
但我认为没有办法做到这一点。在 Linq to Sql 中,我可以访问联结表并在那里添加记录,以反映某个用户对某个页面的添加访问,根据需要多次。但是在 EF 中我无法访问联结表。我只能从 User 转到 Pages 集合,反之亦然。
我确定我误解了关系或其他什么,但我就是不知道如何对此建模。我总是可以在 Page 表中有一个 Count 列,但据我了解,您不应该设计这样的数据库表,这些值应该由查询收集......
请帮助我理解我做错了什么......
【问题讨论】:
标签: entity-framework linq-to-entities many-to-many