Entity Framework CodeFirst------使用CodeFirst方式建立数据库连接(一)

本文分步演练介绍通过 Code First 开发建立新数据库。这个方案包括建立不存在的数据库(Code First 创建)或者空数据库(Code First 向它添加新表)。借助 Code First,可以使用 C# 类定义模型。可以选择使用类的特性和属性执行其他配置,也可以使用 Fluent API 执行其他配置。

1.使用工具

Vs2010、Vs2012或者Vs2013,本文使用的IDE是Vs2013

Nuget程序管理包

2.创建应用程序

简单起见,我们将使用visual studio创建一个控制台应用程序,将控制台命名为EntitySample,创建完成后,我们在项目下面新建一个文件夹并命名为Model,新建一个Student类,在student类中添加几个属性

public Class Student
{ 
    public int ID{ get; set; }

    public string Name { get; set; } 

    public string Class { get; set; } 

    public int Age { get; set; } 
}

 3.创建实体DbContext

DbContext称之为数据库上下文,其可以代表一个数据库的集合或者表示为数据库的一个会话,以便我们查询和保存数据。我们定义一个派生自 System.Data.Entity.DbContext 的上下文,并为模型中的每个类公开一个类型化 DbSet<TEntity>,通过该上下文可以使用linq进行查询工作。在使用DbContext之前,我们需要添加 EntityFramework NuGet 程序包。

      项目”–>“管理 NuGet 程序包…”
      注意:如果没有“管理 NuGet 程序包…”选项,则应安装 最新版本的Nuget

      选择“联机”选项卡

      输入EntityFramework 查找 选择“EntityFramework”程序包

      单击“安装”

安装完成后。我们在项目下新建一个文件夹DbClassContext,在该文件夹下添加一个类 并命名为EntityClassContext,添加 System.Data.Entity 引用,并将类继承自DbContext。

该类主要管理我们自定义的所有的实体类。通过DbSet设置 DbSet代表数据库中的所有实体

public Class EntityClassContext: DbContext 
{ 
    public DbSet<Student> StudentContext { get; set; } 
}

  4.在Program.cs控制台程序main方法中写入代码

5.运行效果如下

6.这样我们通过EntityFramework创建了一个数据库,这个时候我们就会有一个疑问,我们都没有配置数据库连接,打开项目的app.config,我们发现并没有配置数据库的连接字符串,那么数据到底存储在哪儿去了。

原来我们在安装完成VS2010、12、13时,其会安装一个SQL Express实例,如果SQL Express 不可用则 Code First 将尝试使用 LocalDb(默认情况下随 Visual Studio 2012 安装)数据库以项目名称+派生上下文的完全限定名命名,在我们的示例中上下文是EntitySample.EntityClassContext,所以我们会生成上述名称的数据库。

7.可以在 Visual Studio 中使用服务器资源管理器连接至此数据库

“视图”->“服务器资源管理器”
右键单击“数据连接”并选择“添加连接…”

如果尚未从服务器资源管理器连接至数据库,则需要选择 Microsoft SQL Server 作为数据源连接至 LocalDb ((localdb)\v11.0) 或 SQL Express (.\SQLEXPRESS),具体取决于安装情况

8.连接成功后,我们可以查看到我们刚才添加的数据。

9.如果我们是在正式的开发过程中,可能需要连接本地的sql或者远程的sql,那么我们需要更改数据库连接方式。如果需要更改的话,我们打开项目下面的app.config配置文件,在<configuration></configuration>标签下面配置连接字符串。name是指我们派生的DbContext名称

10.通过配置上述字符串后,我们可以连接自己需要的数据库,如果你需要连接其他数据库,可以更改数据库连接字符串。因为此次的实例项目比较简单,园友们可以自己创建项目实验即可。

下节我们集中讨论一下Entity Framework在数据结构变化的时候,如何处理。

 

posted @ 2016-11-11 16:35  EcitGis  阅读(5935)  评论(6编辑  收藏  举报