Mat*_*son 2 entity-framework ef-code-first ef-migrations
我已经反向设计了一个小型数据库,它首先包含许多表和视图到EF 5代码中.
当我这样做时,我为每个表获取了一组模型和映射类,当我尝试使用生成的查询数据库时,这些类很有效DbContext
.
它还为我的每个视图生成POCO类,但是当我运行Enable-Migrations
并Add-Migration
使用Package Manager控制台时,迁移不会重新创建SQL Server视图.
我尝试手动更新迁移以使用自定义SQL创建视图,如下所示:
Sql("CREATE VIEW [dbo].[viewUsersDeactivated] "
+ "AS "
+ "SELECT ... ");
Run Code Online (Sandbox Code Playgroud)
这在运行时工作正常Update-Database
,但从Update-Database -Script
命令输出的SQL脚本似乎无效,导致以下错误:
'CREATE VIEW'必须是批次中唯一的声明.
Sql("GO");
在每个自定义SQL语句之间插入适用于脚本生成,但随后我无法再使用Update-Database
,我找不到适合两者的方法.
所以我的问题归结为:如何在代码第一个迁移脚本中包含SQL Server视图,这样我就可以使用Update-Database
生成的脚本和使用生成的脚本来创建数据库Update-Database -Script
?
谢谢!
不完全确定这是最佳实践,而其他人可能有更好的解决方案,但我通过将整个视图创建脚本包装在Execute中来解决这个问题,因此:
var sql = "CREATE VIEW [dbo].[TheViewName] AS ......."
sql = sql.Replace("'", "''"); // sanitize the sql string
sql = string.Format("EXECUTE sp_executesql N'{0}'", sql);
Sql(sql);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1842 次 |
最近记录: |