Entityframework(以下简称EF)是微软推出的一个ORM(Object Relational Mapping)框架。

优缺点

优点:

易上手,语法简单,查询容易

更新快,不断补足

缺点:

性能问题,查询速度偏慢,不过随着EF6的推出,查询速度进行了很多优化

Code First

EF提供了多种映射模式,比如说Database FirstModel FirstCode First。由于本系列主要使用Code First,因此其他两种不做详细描述。有兴趣的可以去官网查看。

新建项目

首先新建一个控制台应用程序:MLS.CodeFirst,如下图:

然后我们需要安装EF程序包,输入命令 Install-Package EntityFramework,如下图:

这时我们可以定义实体类了,我们模拟公司、员工,定义两个实体类:

Company:

 public class Company
{
public long Id { get; set; } [DisplayName("名称"),Required,StringLength()]
public string Name { get; set; } [DisplayName("描述")]
public string Descript { get; set; }
}

Employee:

 public class Employee
{
public long Id { get; set; } public long CompanyId { get; set; } [DisplayName("名称"),Required,StringLength()]
public string Name { get; set; } public Gender Gender { get; set; }
public int Height { get; set; }
public decimal Weight { get; set; }
}

MLSContext:

 public class MLSContext:DbContext
{
public MLSContext() : base("name=MLSContext") { } public virtual DbSet<Company> Company { get; set; } public virtual DbSet<Employee> Employee { get; set; } protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
}
}

注意这里指定的“name=MLSContext”,所以我们需要在App.Config里面添加数据库链接:

   <connectionStrings>
<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" />
</connectionStrings>

这时候我们可以在Main函数里面坐下测试,是否可以增删改查了。

 class Program
{
static void Main(string[] args)
{
using (var ctx = new MLSContext())
{
var company = new Company()
{
Name = "北琳网络有限公司",
Descript = "It's a good Company."
};
ctx.Company.Add(company);
ctx.SaveChanges();
}
}
}

运行程序,执行代码后,我们可以看到数据库里面已经有了对应的表:

并且数据已经插入:

到此项目已经搭建好,至于后面的维护会在接下来的文章讲解。

源码地址:http://files.cnblogs.com/files/Kingdizzy/MLS.CodeFirst.rar

最新文章

  1. redis成长之路——(四)
  2. 一些实用但不为人知的Unix命令
  3. cookie的读入和读出
  4. DFS(剪枝) POJ 1724 ROADS
  5. WdatePicker.js 日历点击时,触发自定义方法 ,可以调用自己的函数。
  6. 无责任Windows Azure SDK .NET开发入门篇三[使用Azure AD 管理用户信息--3.1 Index用户列表]
  7. Google服务背后的天文数字
  8. 转自微软内部资料:编写高性能 Web 应用程序的 10 个技巧
  9. centos7 服务器安装nginx,mysql,php
  10. UIImagePickerController本地化控件文字
  11. Elasticsearch批处理操作——bulk API
  12. handsontable 属性汇总
  13. JavaScript DOM详解
  14. 【UVA1660】Cable TV Network
  15. NFS文件服务器搭建
  16. 手机浏览器跳转APP
  17. HDU Always Cook Mushroom (极角排序+树状数组)
  18. linux常见编辑命令
  19. 解决php -v查看到版本于phpinfo()打印的版本不一致问题
  20. 如何处理 jQuery $(window).resize() 中的方法被多次执行的小问题

热门文章

  1. 关于request.getsession(true|false)
  2. 解决NDK开发中Eclipse报错“Unresolved inclusion jni.h”的最终方法
  3. Java中移位操作运算符的理解
  4. 【M11】禁止异常流出析构方法之外
  5. DirectSound的应用
  6. .net 调用C++类库
  7. 百度UEditor组件出现Parameters: Invalid chunk &amp;#39;&amp;#39; ignored警告的分析
  8. Perl 内部结构详解
  9. jq实现地址级联效果
  10. Hibernate Validation注解列表