c# - 从数据库中完全替换 Entity Framework 数据模型似乎是不可能的

标签 c# sql-server entity-framework database-first

基本上,我有一个架构更改的 Sql Server 数据库。发生这种情况时,我必须更新 EF 数据模型。如果我所做的只是添加或删除一个表,这很好:转到设计器,从它存在的多个位置之一找到“从数据库更新模型...”,然后通过向导。

不幸的是,向导不只是让我从数据库中替换整个模型。它也一次只能做一件事。因此,如果我做出了更改多个架构甚至更糟的不幸决定,请忘记我所做的事情:我必须执行多个步骤来从模型中添加、刷新和删除表。

这显然很麻烦。因此,由于缺乏更好的程序,我不得不放弃模型并完成从数据库中重新创建它的所有步骤。废话:我在配置文件中留下了连接字符串。现在我必须删除它并重新启动向导,否则它不会生成相同的实体类名,现在我的所有代码都会中断。

为什么这不能直接为我吹走模型并从数据库生成?更重要的是,为什么没有其他人问这个问题?人们在做什么?

最佳答案

如果你想彻底改变并替换模型,最简单的内置方法就是删除它并重新创建它。但是,如果您对模型进行了任何自定义,您当然也会丢失它。

作为一种解决方法,为了允许连续增量模式更改(以及在两端应用的更改),我编写了一个实用程序,将数据库与 EF 模型的 SSDL 层进行比较,将 SSDL 与 CSDL 层进行比较,显示差异和允许同步个别(或所有)差异。

enter image description here

您可以在此处查看实际效果:http://www.youtube.com/watch?v=doqYOlcEAZM ...如果您想尝试一下,可以从 http://huagati.com/edmxtools/ 下载。

关于c# - 从数据库中完全替换 Entity Framework 数据模型似乎是不可能的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9439288/

相关文章:

C# 将 span 与 SocketAsyncEventArgs 结合使用

sql-server - SQL Server 使用 WHILE 循环添加计算列

c# - 有没有办法在运行时查看 Entity Framework Code First 的列映射?

ios:CoreData实体继承

c# - 加密 web.config 连接字符串时, key 存储在哪里?

c# - 只可能用于特定类型?

c# - .NET 配置类保存问题

sql - 如何在 sql 命令中使用单引号?

sql - 在 SQL 中组合连续行中特定列的值

c# - 使用 Database.SetInitializer 避免霰弹枪手术