【发布时间】:2016-02-21 17:57:55
【问题描述】:
我正在编写我的第一个ASP.NET MVC Web 应用程序,其中包含简单的CRUD 操作到SQL 数据库中。我使用ADO.NET Entity Data Model 将数据库添加到Visual Studio。一切都很顺利,直到我意识到我的一个表没有在 EDMX 图表中显示为实体,而是在 Associations 文件夹中。
这里是 SQL 图、EDMX 图和模型浏览器的截图:http://imgur.com/a/onzgn
有5张桌子:
Player - (PK)PlayerID
Season - (PK)SeasonID
Team- (PK)TeamID
SeasonTeam - (PK)SeasonID from Season
- (PK)TeamID from Team
Roster - (PK)PlayerID from Player
- (PK)SeasonID from SeasonTeam
- (PK)TeamID from SeasonTeam
Player、Season、Team 和 SeasonTeam 表在 EDMX 图中显示为实体,但 Roster 表不是,而是显示为关联。如何使“名册”表成为 ADO.NET 中的实体?
【问题讨论】:
-
尝试重新生成 EDMX 文件。确保这次选择所有表格。
-
尝试删除 EDMX 并重新创建它,手动检查所有表。名册表仍显示为关联。
-
我想知道是不是因为您的 ERD 中的 Roster.TeamID 和 Team.TeamID 之间没有实体关系。
-
@randyh22 我想将来自
SeasonTeam的主键对用于Roster表。在SeasonTeam中只使用一个主键(即 SeasonTeamID)会更好吗? -
是的,如果我是你,我会将 SeasonTeam 中的 Id 字段设为自动递增的 int 作为 PK,然后在 Roster 中使用 SeasonTeamId 外键字段。然后还在 Roster 中设置一个 Id 字段并在那里进行 PK。然后让 Roster 中的其他 Id 字段成为其他表的外键。从长远来看,这将使您的生活更加轻松,并且您的 CRUD 操作更加简单。
标签: c# sql asp.net asp.net-mvc entity-framework