【问题标题】:Entity Framework “Update model from Database, table becomes relation实体框架“从数据库更新模型,表变成关系
【发布时间】:2016-07-29 15:17:16
【问题描述】:

我正在尝试从 Visual Studio 中创建一个表,并通过右键单击该文件并选择从数据库中更新模型来更新我在 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; }

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 不起作用,表格仍然显示为关系,而不是表格。
    【解决方案2】:

    差点忘了。似乎是compound primary keys 导致了问题。我进行了更改,因此我的两个外键都只是充当外键而不是组合主键,然后创建了一个名为 Id 的列,而不是数据类型 INT Identity。 在 .edmx 设计器中运行脚本“从数据库更新模型”并繁荣,它就在那里。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-28
      • 2011-04-26
      • 1970-01-01
      • 2011-03-04
      • 1970-01-01
      • 2012-06-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多