我们首先对表和关系使用模型,对视图和存储过程首先使用数据库。
如果我们改变模型,我们必须:
- 生成数据库
- 创建视图和程序
- 将程序和视图添加到模型中
-remap 手动调用过程的函数
这会花费很多时间,因为模型经常更改或出现故障。
anyboy 知道在模型中自动集成视图和过程的解决方法吗?
我们首先对表和关系使用模型,对视图和存储过程首先使用数据库。
如果我们改变模型,我们必须:
- 生成数据库
- 创建视图和程序
- 将程序和视图添加到模型中
-remap 手动调用过程的函数
这会花费很多时间,因为模型经常更改或出现故障。
anyboy 知道在模型中自动集成视图和过程的解决方法吗?
您可以通过创建自己的模板从 SSDL 生成 DDL 来自动化该过程。默认情况下,EF 设计器使用 SSDLToSQL10.tt 文件,但您可以创建自己的 .tt 文件,该文件将生成更适合您需求的 DDL。这应该解决 1) 和 2)。一旦你有了数据库,你现在可以从数据库中更新你的模型。这应该解决3)。最后,为了解决 4),您可以编写一个模型生成扩展,该扩展将调整设计人员在OnAfterModelGenerated / OnAfterModelUpdated方法中从数据库构建的模型。(请注意 - 设计器中的某些扩展点至少可以说很奇怪,并且可能会令人困惑/难以实现)。
您可能想要探索的另一个选项是使用 Code First 和迁移。使用迁移,您可以改进您的数据库,而不是不断地创建/删除它。如果需要,可以使用 SQL 定义迁移,以便完全控制数据库的外观。Code First 不支持 ModelFirst/DatabaseFirst 支持的某些功能(例如 TVFs/FunctionImports),因此您可能需要先检查所支持的功能是否足以满足您的需要。