Entity Framework 小知识(二)

简介: 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 中的设置。

目录
相关文章
|
JavaScript 前端开发 Scala
谈一谈你理解的函数式编程?
谈一谈你理解的函数式编程?
166 0
|
7月前
|
小程序 数据安全/隐私保护 开发者
【02】微信支付商户申请下户到配置完整流程-微信开放平台申请APP应用-微信商户支付绑定appid-公众号和小程序分别申请appid-申请+配置完整流程-优雅草卓伊凡
【02】微信支付商户申请下户到配置完整流程-微信开放平台申请APP应用-微信商户支付绑定appid-公众号和小程序分别申请appid-申请+配置完整流程-优雅草卓伊凡
406 3
|
11月前
|
域名解析 网络协议 应用服务中间件
nginx server_name配置文件覆盖不生效
nginx server_name配置文件覆盖不生效
|
11月前
|
人工智能 Serverless API
云原生应用开发平台CAP评测
CAP(Cloud Application Platform)是阿里云提供的一站式应用开发及管理平台,集成了Serverless计算、AI应用模板、先进开发者工具和企业级应用管理功能。本文结合官方文档与实际操作,全面评测了CAP的产品优势、实际操作体验及性能表现,展示了其在降低成本、提高开发效率和灵活性方面的卓越能力。
487 10
|
人工智能 云计算 开发者
探究后端技术发展趋势,预测未来发展方向
【2月更文挑战第4天】随着信息技术的不断更新迭代,后端技术也在不断发展壮大。本文将从云计算、容器化、微服务等多个角度,探究后端技术的现状和未来发展趋势,并对未来发展方向进行预测。
|
监控 Go 开发者
掌握Go语言中的日志管理
【8月更文挑战第31天】
158 0
|
11月前
|
Kubernetes 监控 调度
k8s基础
k8s基础
119 1
|
机器学习/深度学习 自动驾驶 计算机视觉
深度学习在图像识别中的应用与挑战
本文将探讨深度学习技术在图像识别领域的应用,并分析其面临的主要挑战。通过引用最新的研究成果和统计数据,我们将揭示深度学习如何改变图像处理的方式,以及它在未来可能的发展方向。
95 27
|
开发框架 搜索推荐 前端开发
【.NET全栈】ASP.NET开发Web应用——Web部件技术
【.NET全栈】ASP.NET开发Web应用——Web部件技术
|
SQL Cloud Native 架构师
深入浅出Presto:大数据查询引擎的原理与应用
【4月更文挑战第7天】Presto是高性能的分布式SQL查询引擎,专为大规模数据交互式分析设计。它采用分离式架构,内存计算和动态规划优化查询,支持跨源查询、交互式查询和ANSI SQL兼容性。应用于大数据分析、实时数据湖查询和云原生部署。Presto的灵活性和效率使其在大数据处理领域备受推崇,适合分析师、数据科学家和IT架构师使用。未来将在博客中分享更多实践和案例。
1467 1