Entityframework(以下简称EF)是微软推出的一个ORM(Object Relational Mapping)框架。
优缺点
优点:
易上手,语法简单,查询容易
更新快,不断补足
缺点:
性能问题,查询速度偏慢,不过随着EF6的推出,查询速度进行了很多优化
Code First
EF提供了多种映射模式,比如说Database First、Model First、Code First。由于本系列主要使用Code First,因此其他两种不做详细描述。有兴趣的可以去官网查看。
新建项目
首先新建一个控制台应用程序:MLS.CodeFirst,如下图:
然后我们需要安装EF程序包,输入命令 Install-Package EntityFramework,如下图:
这时我们可以定义实体类了,我们模拟公司、员工,定义两个实体类:
Company:
1 public class Company 2 { 3 public long Id { get; set; } 4 5 [DisplayName("名称"),Required,StringLength(50)] 6 public string Name { get; set; } 7 8 [DisplayName("描述")] 9 public string Descript { get; set; } 10 }
Employee:
1 public class Employee 2 { 3 public long Id { get; set; } 4 5 public long CompanyId { get; set; } 6 7 [DisplayName("名称"),Required,StringLength(50)] 8 public string Name { get; set; } 9 10 public Gender Gender { get; set; } 11 public int Height { get; set; } 12 public decimal Weight { get; set; } 13 }
MLSContext:
1 public class MLSContext:DbContext 2 { 3 public MLSContext() : base("name=MLSContext") { } 4 5 public virtual DbSet<Company> Company { get; set; } 6 7 public virtual DbSet<Employee> Employee { get; set; } 8 9 protected override void OnModelCreating(DbModelBuilder modelBuilder) 10 { 11 base.OnModelCreating(modelBuilder); 12 } 13 }
注意这里指定的“name=MLSContext”,所以我们需要在App.Config里面添加数据库链接:
1 <connectionStrings> 2 <add name="MLSContext" connectionString="data source=.MSSQLSERVER2012;initial catalog=MLS.CodeFirst;user id=admin;password=admin;multipleactiveresultsets=True;application name=EntityFramework" providerName="System.Data.SqlClient" /> 3 </connectionStrings>
这时候我们可以在Main函数里面坐下测试,是否可以增删改查了。
1 class Program 2 { 3 static void Main(string[] args) 4 { 5 using (var ctx = new MLSContext()) 6 { 7 var company = new Company() 8 { 9 Name = "北琳网络有限公司", 10 Descript = "It's a good Company." 11 }; 12 ctx.Company.Add(company); 13 ctx.SaveChanges(); 14 } 15 } 16 }
运行程序,执行代码后,我们可以看到数据库里面已经有了对应的表:
并且数据已经插入:
到此项目已经搭建好,至于后面的维护会在接下来的文章讲解。
源码地址:http://files.cnblogs.com/files/Kingdizzy/MLS.CodeFirst.rar