答案 0 :(得分:0)
其实我觉得你不能。你也可以看看这里,以确保
https://entityframework.codeplex.com/SourceControl/latest#src/EntityFramework.SqlServer/SqlProviderServices.cs
并且在被调用的函数上(但它只运行"创建数据库"最终指定mdf和ldf文件名)。
最好的办法是在标准迁移之前创建运行直接查询的数据库。
修改强>
数据库创建实际上并不是自动化的,或者更好,您可以决定何时创建它(并编写迁移,如何创建)
实际上我认为你正在使用自动迁移(你没有编写任何迁移代码)
如果数据库不存在并且创建了表来检查__MigrationHistory表,则会创建数据库(这非常重要,因为您可以在不更新EF元数据的情况下创建数据库)。
它发生在第一次访问EF之前(首先访问EF读取映射,检查数据库是否正常然后执行您请求的查询)或者您可以强制它。
实际上我认为,如果参数错误,则确定是否需要运行创建数据库(您可以检查它是否存在)比运行alter database更简单。
您的代码可以:
1.从App / Web配置中读取连接字符串
2.连接到master而不是指定的数据库
3.检查数据库是否存在(从sysdatabases中选择count(*),其中name = ...)
4.如果它不存在则创建它
然后,您可以继续使用正常代码(EF将找到数据库,以便迁移将避免创建它。)
答案 1 :(得分:0)
启用迁移,但不启用自动迁移。 See this to learn about migrations
创建第一次迁移。这会创建Up()
和Down()
方法。您可以在上一份文档的Customizing migrations section中查看如何自定义它。
在up方法中,您可以使用Sql("Your sql command")
运行ALTER DATABASE commands以将增长设置为最大大小数据库配置。