首页 > 解决方案 > 实体框架似乎跳过了通过约束设置多列主键的表映射

问题描述

我通过数据库优先方法创建了一个 ADO.NET 模型。

创建模型时列出的我的一张表实际上并未添加到其中。

该表有一个多列主键,由两个外键组成。

CREATE TABLE ForumAccess
(
    UserID INT FOREIGN KEY REFERENCES Users(UserID) NOT NULL,
    ForumID INT FOREIGN KEY REFERENCES Forums(ForumID) NOT NULL,
    CONSTRAINT ForumAccessID PRIMARY KEY (UserID, ForumID),
);

当我必须选择要添加的表时,它确实会出现,但它似乎被跳过了。没有为它生成类,也没有在.edmx文件中显示。

我的应用程序的一部分取决于此表的存在。我有另一个表,它有一个多列主键和另一个 DateTime 类型列。该表确实被添加。

该表是:

CREATE TABLE Moderators
(
    UserID INT FOREIGN KEY REFERENCES Users(UserID) NOT NULL,
    ForumID INT FOREIGN KEY REFERENCES Forums(ForumID) NOT NULL,
    TimeOfAddition DateTime NOT NULL, -- When the mod was added as a mod.
    CONSTRAINT ModeratorID PRIMARY KEY (UserID, ForumID),
);

为什么Moderators表被添加,但ForumAccess表没有?

没有错误,也没有我能看到的任何警告。

我错过了什么?

标签: sql-serverentity-framework-6

解决方案


推荐阅读