体验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 也是不一样的,具体哪儿不一样,就大家比较下就一目了然了。收工。