Entity Framework 小知识(二)

零、基于代码配置

基于代码配置是EF6新增的一个特性,操作步骤如下:

  1. 创建***DbConfig***派生类;
  2. 配置默认连接工厂;
  3. 设置***Database Provider***;
  4. 设置数据库初始化器;
1. 创建***DbConfig***派生类
public class EF6Config:DbConfiguration
{
    public EF6Config(){}
}

复制代码

接下来使用 DbConfigurationType 属性在上下文类中设置基于代码的配置类:

[DbConfigurationType(typeof(EF6Config))]
public partial class EF6DbContext:DbContext
{
  public EF6DbContext():base("name=EF6DbContext"){}  
}
复制代码
2. 配置默认连接工厂

使用 SetDefaultConnectionFactory 方法设置默认连接工厂(以SQL SERVER 数据库为例):

public class EF6Config:DbConfiguration
{
    public EF6Config()
    {
      this.SetDefaultConnectionFactory(new System.Data.Entity,Infrastructure.SqlConnectionFactory());
    }
}
复制代码
3. 设置***Database Provider***

使用 SetProviderServices() 方法配置数据库提供程序:

public class EF6Config:DbConfiguration
{
    public EF6Config()
    {
      this.SetDefaultConnectionFactory(new System.Data.Entity,Infrastructure.SqlConnectionFactory());

      this.SetProviderServices("System.Data.SqlClient",System.Data.Entity.SqlServer.SqlProviderServices.Instance);
    }
}
复制代码
4. 设置数据库初始化器

在使用 code first 的情况下,可以使用基于代码的配置数据库的初始值:

public class EF6Config:DbConfiguration
{
    public EF6Config()
    {
      this.SetDefaultConnectionFactory(new System.Data.Entity,Infrastructure.SqlConnectionFactory());

      this.SetProviderServices("System.Data.SqlClient",System.Data.Entity.SqlServer.SqlProviderServices.Instance);

      this.SetDatabaseInitializer<EF6DbContext>(new CustomDBInitializer(EF6DbContext)());
    }
}
复制代码

注:.config 中 的配置优于代码配置,也就是说,如果同时在 .config 中和代码中都设置了配置选项,则优先使用 .config 中的设置。

转载于:https://juejin.im/post/5d01b808e51d454f71439cb4

猜你喜欢

转载自blog.csdn.net/weixin_33912453/article/details/93169920