今天,我维护的项目具有非常混乱的数据库,需要大量重构并在客户端机器上发布。
我知道我可以添加一个仅包含数据库脚本的SQL Server 数据库.dacpac
项目,并创建一个允许我自动更改客户端数据库的文件。
另外我知道我可以将一个.mdf
文件添加App_Data
到文件夹甚至Solution_Data
文件夹中,然后将我的数据库放在那里。我想这localDb
已经存在允许我在没有 SQL Server 的情况下启动我的解决方案
最后我知道实体框架存在于它自己的迁移中。但我不想使用它,因为我无法通过它的迁移添加和更改索引,并且当我需要描述困难的迁移场景时我没有足够的灵活性。
我的目标:
- 自动生成到客户端数据库的迁移脚本。
- 使我的解决方案自成一体,任何来到项目的新程序员甚至都不需要在他的机器上安装 SQL Server。
- 只需单击 1-2 次即可更新本地(开发)基础。
- 能够回到数据库更改的历史记录(我有 TFS 服务器)
- 能够在具有最新数据库方案的解决方案中拥有干净的(仅使用字典或查找表)数据库。
- 此外,我希望能够自动或非常简单的方式更新我的数据库模型( EF或)。
.dbml
所以我要问什么:
如果我想实现我的目标,使用这两种方法的优缺点是什么?
可以是我应该使用这种工具的组合吗?
或者我不知道 MS 的其他现有工具?
有没有办法从这个数据库更新我的DAL模型?