【发布时间】:2009-06-13 21:17:49
【问题描述】:
我的数据库中有 2 个表,我正在尝试为其创建 Linq2Sql 实体。他们的意义远不止于此,但这基本上就是他们归结为:
房间用户活动 -------- -------- RoomID 活动ID RoomID(Rooms.RoomID 上的外键)UserActivity 表本质上只是用户对 Rooms 表执行的操作的日志。
由于UserActivity 表仅用于记录所采取的操作,因此最初为表创建主键并没有多大意义(至少对我而言),直到 Linq2Sql 映射器拒绝创建 @ 987654323@ 我的 Linq 实体中 Room 实体的一部分。当我在 Visual Studio 设计器中设置实体时,我收到了以下 2 个警告:
Warning 1 DBML1062: The Type attribute 'UserActivity' of the Association element 'Room_UserActivity' of the Type element 'Room' does not have a primary key. No code will be generated for the association.Warning 2 DBML1011: The Type element 'UserActivity' contains the Association element 'Room_UserActivity' but does not have a primary key. No code will be generated for the association.
这些警告导致我在我的表中创建ActivityID 列,如上所示。
我想知道的是,是否有任何方法可以让 Linq2Sql 在我的实体之间创建关系,而无需在两个表中都有主键。如果UserActivity 表中没有主键,仍然可以创建实体,但不会生成关系。
是否可以这样做,或者我应该尝试确保我的表中始终有一个主键作为一般的良好做法?
【问题讨论】:
标签: linq linq-to-sql