实体框架“从数据库更新模型,表成为关系

时间:2015-06-11 11:44:27

标签: c# sql visual-studio-2013 entity-framework-6 ef-database-first

我尝试在visual studio中创建一个表,并通过右键单击该文件并从数据库中选择Update Model来更新Visual Studio中的.edmx文件。

我的表格如下:

CREATE TABLE [dbo].[tableName] (
[UserId] UNIQUEIDENTIFIER NOT NULL,
[CategoryId]   INT         NOT NULL,
CONSTRAINT [PK_responsibleUser] PRIMARY KEY NONCLUSTERED ([UserId], [pkID] ASC),
CONSTRAINT [FK_responsibleUser_user] FOREIGN KEY ([UserId]) REFERENCES [dbo].[users] ([UserId]) ON DELETE CASCADE,
CONSTRAINT [FK_categoryResponsibleUser_category] FOREIGN KEY ([CategoryId]) REFERENCES [dbo].[categories] ([CategoryId]) ON DELETE CASCADE
);

此表包含要链接的表的两个外键。在我运行脚本"从数据库更新模型"后,弹出两个表之间的关系。

现在出现问题:我需要EF在Visual Studio中生成我的类的实例,如下所示:

public virtual DbSet<tableName> TableIWantToBeGeneratedByEF { get; set; }

正如我所说,使用当前映射它只是在两个表之间创建关系。在创建表时,如何更改查询?这可以在使用两个外键作为主键或什么时实现?

2 个答案:

答案 0 :(得分:0)

只需打开设计的模型,选择全部(ctrl + A),按“删除”按钮将其删除,最后右键单击并选择“从数据库更新模型”。这将迫使EF重新生成所有模型。

(或者只是删除所有引用的表,以便它们也被重新生成)

答案 1 :(得分:0)

几乎忘记了。似乎导致问题的是compound primary keys。我改变了所以我的外键只是作为外键而不是组合主键,然后创建了一个名为Id的列,而不是数据类型INT Identity。 运行脚本&#34;从数据库更新模型&#34;在.edmx设计师和热潮中,它就在那里。