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     }

View Code

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     }

View Code

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     }

View Code

注意这里指定的“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>

View Code

这时候我们可以在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     }

View Code

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

并且数据已经插入:

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

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

转载于:https://www.cnblogs.com/Kingdizzy/p/5645885.html

Entityframework Code First 系列之项目搭建相关推荐

  1. Entityframework Code First 系列

    总篇, 下面会添加每个小篇的链接. 目录如下: 项目搭建 -- 转载于:https://www.cnblogs.com/Kingdizzy/p/5645802.html

  2. [Spring Boot系列]1. 项目搭建之一

    文章目录 1. 总述 2. Spring Boot官网产生Maven类型的项目后导入Eclipse 步骤1:进入项目创建页面: https://start.spring.io/, 确认框框中的输入. ...

  3. 【 .NET Core 3.0 】框架之二 || 后端项目搭建

    前言 至于为什么要搭建.Net Core 平台,这个网上的解释以及铺天盖地,想了想,还是感觉重要的一点,跨平台,嗯!没错,而且比.Net 更容易搭建,速度也更快,所有的包均由Nuget提供,不再像以前 ...

  4. angular6 mysql_Angular6项目搭建

    安装工具: Nodejs, npm     最新版, https://nodejs.org/en/ Angular CLI,    npm install -g @angular/cli Visual ...

  5. SSM项目搭建一(终)

    2019独角兽企业重金招聘Python工程师标准>>> 项目搭建使用的不仅仅只是前面所说的那些,还有一下比如gson或jackson.个人类库.定时器等等,这里就不一一赘述了.下面看 ...

  6. 004-Spring boot 快速入门-项目搭建与启动、SpringBootApplication、启动图标

    一.官方地址 Spring:http://spring.io/ Spring Project:http://spring.io/projects Spring boot:https://project ...

  7. React系列---Webpack环境搭建(二)不同环境不同配置

    React系列---Webpack环境搭建(一)手动搭建 React系列---Webpack环境搭建(二)不同环境不同配置 React系列---Webpack环境搭建(三)打包性能优化 实际项目中,往 ...

  8. Maven精选系列--私库搭建及使用

    转载自 Maven精选系列--私库搭建及使用 为什么要使用私库 maven默认去远程中央仓库下载JAR包的,访问国外网络相当慢,如果团队每个人都去下载一遍无疑是网络的浪费,当然也可以添加国内的镜像,如 ...

  9. Spring mvc+ maven + MyBatis + Oracle + IDEA 项目搭建 - framework 进阶中(一)

    原文链接 http://blog.csdn.net/qq184377902/article/details/51493642 结合自身情况加以修改搭建的框架,记录以防备忘,方便日后学习参考. Befo ...

最新文章

  1. 设计模式(4)-序列生成器之单例模式
  2. 服务器负载不高 响应慢_负载均衡有哪几大类别?
  3. SharePoint 2013 开发——SharePoint Designer 2013工作流
  4. .NET部分知识点整理
  5. C#中dynamic的正确用法 以及 typeof(DynamicSample).GetMethod(Add);
  6. 引用管理器没有程序集_如何使用Zotero插入引用文献
  7. sql 批量插入数据到Sqlserver中 效率较高的方法
  8. 投资大鳄摩根士丹利成Accellion FTA 服务器被黑事件的又一个受害者
  9. python心脏线绘制代码_JavaScript图形实例:曲线方程
  10. python语句和语法结构
  11. Linux系统 Centos6 安装
  12. MyBatis中出现Mapped Statements collection does not contain value 问题
  13. mysql驱动和url在5.7以上版本变化
  14. 3.1词典搜索的数据结构与通配符查询
  15. 头像 linux,头像制作大师下载-头像制作大师appv1.2.0-Linux公社
  16. 行列式(Determinants)
  17. JUC(二):Java 线程预备知识
  18. WPS衍生新软件,填补一大缺憾,让office汗颜,Excel用户很开心
  19. wx python 基本控件
  20. Red Hat Enterprise Linux Server release 7.1 (Maipo) 安装gcc 的几种方式

热门文章

  1. 反射 + 配置文件 实现IOC容器
  2. 【Android开发】自定义ListView,使用通用适配器,并实现ListView上的每一项和每一项上的按钮等控件同时监听
  3. ACM 模板--邻接表 无向图 搜索算法
  4. 算法经典书籍--算法设计与分析基础
  5. linux下两个进程可以同时打开同一个文件吗?返回的文件描述符一样吗?
  6. python二十一:文件操作
  7. Nike推Nike Fit可轻松丈量足部尺寸与推荐鞋款
  8. java-自定义数据排序
  9. Greenplum添加mirror步骤
  10. 9月份个人:windows系统的DNS服务器配置