来自数据库的更新模型正在更新数据库

时间:2019-06-18 19:52:35

标签: c# sql-server entity-framework database-schema sql-view

我有一个实体框架 .edmx 文件,其中的一个模型基于Azure上SQL Server实例中的视图。我更改了此视图,以使其包括另外一列。

在SQL Server Management Studio中,ALTER语句成功执行而没有发生任何事件。之后,SELECT * FROM theView确实按预期显示了新列。

转到Visual Studio中的解决方案,我打开 .edmx 文件以显示模型的设计图。然后,我右键单击并选择从数据库更新模型。显示了更新向导,并切换到刷新标签。选项卡上显示了许多视图。这确实包括最近更改过的版本。

Update Wizard: Refresh tab

我点击完成,几秒钟后向导完成。但是,通过运行以上SELECT语句并在“设计”模式下查看其结构,确认数据库中的视图不再具有其他字段。出乎意料,但与现在缺少的列一致,我的解决方案在尝试返回相应的DbSet时遇到此错误:

  

System.Data.SqlClient.SqlException:无效的列名

我已经阅读了一些相关的内容,这些内容表明Update Models from Database功能存在问题以及奇怪之处:<​​/ p>

不过,这些都没有提及我所看到的行为。另外,我认为我的步骤与this tutorial相符。它已经过时了,但是除了最终结果,其他所有东西似乎都在VS 2017中出现。

我期望生成的模型应该符合数据库,而不完全相反吗?我可能缺少某些步骤或设置了吗?


更新 [2019-06-19] 尽管询问该问题的评论员将其重新考虑为可能的红色鲱鱼,但为便于说明,我将其提及完整性。上下文的OnModelCreating如下所示(默认设置):

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            throw new UnintentionalCodeFirstException();
        }

0 个答案:

没有答案