layout: docs-default
EF遷移到SQL Azure
如果需要連接上SQL Azure耘婚,需要配置 SqlAzureExecutionStrategy
,為了使用DbExecutionStrategy
崭放,必須自定義一個(gè)DbConfiguration
。創(chuàng)建一個(gè)新類(lèi)鸽凶,填入下面的代碼:
using System.Data.Entity;
using System.Data.Entity.SqlServer;
namespace IdentityServer3.Samples.EntityFramework
{
public class MyDbConfiguration: DbConfiguration
{
SetExecutionStrategy("System.Data.SqlClient", () => new SqlAzureExecutionStrategy());
}
}
有了自定義的 MyDbConfiguration
后,需要?jiǎng)?chuàng)建一個(gè)DbContext
的派生類(lèi),通過(guò)使用DbConfigurationType
特性來(lái)連接上面的代碼
Custom ClientConfigurationDbContext
using System.Data.Entity;
using IdentityServer3.EntityFramework;
namespace IdentityServer3.Samples.EntityFramework
{
[DbConfigurationType(typeof(MyDbConfiguration))]
public class MyClientConfigurationDbContext : ClientConfigurationDbContext
{
public MyClientConfigurationDbContext()
{
}
public MyClientConfigurationDbContext(EntityFrameworkServiceOptions entityFrameworkConfig):
base(connectionString, schema)
{
}
public MyClientConfigurationDbContext(string connectionString, string schema):
base(connectionString, schema)
{
}
}
}
自定義ScopeConfigurationDbContext
using System.Data.Entity;
using IdentityServer3.EntityFramework;
namespace IdentityServer3.Samples.EntityFramework
{
[DbConfigurationType(typeof(MyDbConfiguration))]
public class MyScopeConfigurationDbContext : ScopeConfigurationDbContext
{
public MyScopeConfigurationDbContext()
{
}
public MyScopeConfigurationDbContext(EntityFrameworkServiceOptions entityFrameworkConfig):
base(entityFrameworkConfig.ConnectionString, entityFrameworkConfig.Schema)
{
}
public MyScopeConfigurationDbContext(string connectionString, string schema):
base(connectionString, schema)
{
}
}
}
自定義 OperationalDbContext
using System.Data.Entity;
using IdentityServer3.EntityFramework;
namespace IdentityServer3.Samples.EntityFramework
{
[DbConfigurationType(typeof(MyDbConfiguration))]
public class MyOperationalDbContext : OperationalDbContext
{
public MyOperationalDbContext()
{
}
public MyOperationalDbContext(EntityFrameworkServiceOptions entityFrameworkConfig):
base(entityFrameworkConfig.ConnectionString, entityFrameworkConfig.Schema)
{
}
public MyOperationalDbContext(string connectionString, string schema):
base(connectionString, schema)
{
}
}
}