【问题标题】:Table not shown as entity in ADO.NET. Is shown as an Association instead表在 ADO.NET 中未显示为实体。改为显示为关联
【发布时间】: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

PlayerSeasonTeamSeasonTeam 表在 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


【解决方案1】:

默认不会生成,因为你的表只有主键

【讨论】:

  • VS 生成了仅包含外键的 SeasonTeam 表。这是否意味着如果表包含外键的外键,VS不会生成表?
  • 抱歉,只有主键。您的表名册是否将所有 3 个字段作为主键?此外,您的 SessionTeam 是否也有一对 (SessionID + TeamID) 作为主键,或者只是 2 个不同的外键?
  • 是的,SeasonTeam 有一个主密钥对。需要编辑 OP,因为我贴错了标签。为Seasonteam 添加唯一ID 并将Roster 重新创建为具有Player 表的关联实体可以解决此问题吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多