我们在键盘上跳舞,演绎最美的人生

体验EF5 Code First

Code First 不是EF5新的特性,EF4中已经可以Code First,这里只是简单再把Code First的步骤简要说明下。好了,废话少说,开始工作。

1、新建一个测试工程,这里选择的是控制台应用程序,并命名为【EFCodeFirstDemo】

     

2、下载引入EntityFramework

        在 工具->库程序包管理器->程序包管理器控制台

        

         在弹出的程序包管理器控制台中输入:Install-Package EntityFramework (如果已经安装,则可以输入Update-Package EntityFramework)

       

         安装成功后,可在项目的引用中看到 EntityFramework已被成功引入进来。

        

 

3、新增一个简单类,命名为【Customer.cs】

 1 using System.ComponentModel.DataAnnotations;
 2 namespace EFCodeFirstDemo.Models
 3 {
 4     public class Customer
 5     {
 6         [Key]
 7         public string Id { get; set; }
 8         public string Name { get; set; }
 9         public string Address { get; set; }
10     }
11 }

 

4、新增DbContext类,命名为【DataContext】

 1 using System.Data.Entity;
 2 namespace EFCodeFirstDemo.Models
 3 {
 4     public class DataContext : DbContext
 5     {
 6         public DataContext()
 7             : base("name=DataContext")
 8         {
 9         }
10         public DbSet<Customer> Customers { get; set; }
11     }
12 }

 

 

5、新增业务代码类,命名为【CustomerManager】
 1 using System.Collections.Generic;
 2 using System.Linq;
 3 namespace EFCodeFirstDemo.Models
 4 {
 5     public class CustomManager
 6     {
 7         public List<Customer> GetCustomers()
 8         {
 9             var context = new DataContext();
10             var list = context.Customers.ToList();
11             return list;
12         }
13     }
14 }

 

 
6、在控制台中测试代码:
using System;
using EFCodeFirstDemo.Models;
 
namespace EFCodeFirstDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            var manager = new CustomerManager();
            var list = manager.GetCustomers();
            Console.WriteLine("当前共有{0}个客户记录", list.Count);
            Console.ReadLine();
        }
    }
}

 

 
好了,此时一个简单的EF CodeFirst已经完成,现在我们来F5运行下,发现出现异常了,异常信息为:

一看异常信息,原来我们还少了一个步骤,即还没有把类与数据库进行映射。
好,那现在我们开始创建数据库先:
1、创建一个库,命名为【EFCodeFirstDemo】
  
2、创建表,好了,此时的表名应该是我们Code First 的类名(Customer) 还是实体集( Customers )呢?嗯,应该是实体集Customers才是正确的。
 

3、表创建好以后,我们可以先手工对表新增几条测试数据。

 
4、现在数据也有了,那么现在只需要在配置文件中加入对应的数据库连接即可。
 

5、运行F5,看看运行结果
 

 
好了,结果出来了,讲到这里,应该可以收工了,但这里还需要一点说明的是,code frist 需要的Connectionstring 与不是code frist的connectionstring 是有些不一样的,而且 providerName 也是不一样的,具体哪儿不一样,就大家比较下就一目了然了。收工。
posted @ 2012-12-06 21:49  嘉应子  阅读(961)  评论(2编辑  收藏  举报