entity-framework – 如何首先通过Enity Framework代码以编程方式创建基本/标准版类型的Sql Azure数据库

前端之家收集整理的这篇文章主要介绍了entity-framework – 如何首先通过Enity Framework代码以编程方式创建基本/标准版类型的Sql Azure数据库前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用EF 6.我现有的代码是:
  1. public void CreateOrUpdateCompanyDb(string companyDbName)
  2. {
  3. try
  4. {
  5. string connectionString = _connectionStringProvider.GetConnectionString(companyDbName);
  6. DbMigrationsConfiguration cfg = CreateMigrationsConfig(connectionString);
  7. cfg.AutomaticMigrationsEnabled = false;
  8. cfg.AutomaticMigrationDataLossAllowed = false;
  9. DbMigrator dbMigrator = new DbMigrator(cfg);
  10.  
  11. dbMigrator.Update();
  12. }
  13. catch (MigrationsException exception)
  14. {
  15. _logger.Error(string.Format("Error creating company database '{0}'",companyDbName),exception);
  16. }
  17. }

连接字符串如下:

  1. Server=tcp:xxx.database.windows.net,1433;Database=companyDbName;User ID=xxx@xxx;Password=xxx;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;"

这为特定公司创建了数据库.但问题是创建的数据库来自现已退役的网络版,但我想创建基本/标准/高级版.

我应该如何操作连接字符串,以便数据库的版本是所需的?

解决方法

您可以在 Create Database命令中指定sql Azure数据库版本.
AFAIK,您无法使用连接字符串指定它.

句法 –

  1. CREATE DATABASE database_name [ COLLATE collation_name ]
  2. {
  3. (<edition_options> [,...n])
  4. }
  5.  
  6. <edition_options> ::=
  7. {
  8. MAXSIZE = { 100 MB | 500 MB | 1 | 5 | 10 | 20 | 30 150500 } GB
  9. | EDITION = { 'web' | 'business' | 'basic' | 'standard' | 'premium' }
  10. | SERVICE_OBJECTIVE = { 'shared' | 'basic' | 'S0' | 'S1' | 'S2' | 'P1' | 'P2' | 'P3' }
  11. }
  12. [;]

鉴于此,对于您的方案,我会想到两个选项 –

>在使用DbMigrator之前,如果使用传统的ADO.Net不存在,则显式编写创建数据库代码.>想到的另一个选项,但我不太了解你可以深入研究,如果你想,是以某种方式找到一种方法来挂钩到EF,这样你就可以自定义它必须生成的Create Database命令.

猜你在找的MsSQL相关文章