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

Entityframework Code First 系列之项目搭建的更多相关文章

  1. Entityframework Code First 系列之数据注释

    上一篇<Entityframework Code First 系列之项目搭建>讲了搭建一个Code First的控制台项目.里面有一些内容并没有扩展出来讲,因为篇幅有限.这篇针对上面内容中 ...

  2. Vue.js系列之项目搭建

    项目搭建具体步骤如下: 1.安装node (中)https://nodejs.org/zh-cn/ (英)https://nodejs.org/en/ 2.安装cnpm镜像 (node自带安装了npm ...

  3. Vue.js系列之项目搭建(1)

    项目搭建具体步骤如下: 1.安装node 到官网下载安装,我这里是win7系统. (中)https://nodejs.org/zh-cn/ (英)https://nodejs.org/en/ 2.安装 ...

  4. Entityframework Code First 系列

    总篇, 下面会添加每个小篇的链接. 目录如下: 项目搭建 ……

  5. Vue.js系列之项目搭建(vue2.0 + vue-cli + webpack )

    1.安装node node.js环境(npm包管理器) cnpm npm的淘宝镜像 从node.js官网下载并安装node,安装过程很简单,一路“下一步”就可以了(傻瓜式安装).安装完成之后,打开命令 ...

  6. .net Dapper 实践系列(1) ---项目搭建(Layui+Ajax+Dapper+MySQL)

    目录 写在前面 一.前期准备 1.在MySQL创建数据库 2.创建项目 3.安装程序包 4.添加插件 5.添加DbOption文件夹 6.添加实体类 写在前面 学习并实践使用Dapper 这个小型的O ...

  7. 项目搭建系列之一:使用Maven搭建SpringMVC项目

    约定电脑都安装了eclipse,且已配置好Maven以及eclipse插件. 1.Eclipse 2.maven 3.Eclipse 需要安装maven插件.url:maven - http://do ...

  8. mvc项目架构分享系列之架构搭建初步

    mvc项目架构分享系列之架构搭建初步 Contents 系列一[架构概览] 0.项目简介 1.项目解决方案分层方案 2.所用到的技术 3.项目引用关系 系列二[架构搭建初步] 4.项目架构各部分解析 ...

  9. Asp.net mvc项目架构分享系列之架构搭建初步

    copy to:http://www.cnblogs.com/ben121011/p/5014795.html 项目架构各部分解析 Core Models IDAL MSSQLDAL IBLL BLL ...

随机推荐

  1. Web性能优化之图片优化

    http://get.jobdeer.com/6513.get 其中APNG和WebP格式出现的较晚,尚未被Web标准所采纳,只有在特定平台或浏览器环境可以预知的情况下加以采用,虽然均可以在不支持的环 ...

  2. 切取图片的一部分(利用CCRenderTexture)

    转自:http://blog.csdn.net/wcjwdq/article/details/37932769 显示图片时,在项目中经常会用只读取图片的一部分,而不是全部. 错误方式:很多人这时候会采 ...

  3. TL-WR703 USB不稳定/当前的总结

    http://see.sl088.com/wiki/WR703_USB%E4%B8%8D%E7%A8%B3%E5%AE%9A/%E5%BD%93%E5%89%8D%E7%9A%84%E6%80%BB% ...

  4. C++学习笔记之this指针

    为了说明这个问题,首先来建立一个简单的类 #include <iostream> #include <string> using namespace std; class Bo ...

  5. 以优美方式编写JavaScript代码

    英文原文:CoffeeScript: The beautiful way to write JavaScript 我用 JavaScript 编程很多年了,写了大量的 JavaScript 代码,即便 ...

  6. C#如何通过NCO3.0来连接SAP并调用SAP中的RFC

    ,这是SAP针对.Net开发的专用组件,安装完成之后在C:\Program Files\SAP\SAP_DotNetConnector3_x86目录下面会有sapnco_utils.dll sapnc ...

  7. Codeforces Round #312 (Div. 2) C. Amr and Chemistry 暴力

    C. Amr and Chemistry Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/558/ ...

  8. Python基础教程之第2章 列表和元组

    D:\>python Python 2.7.5 (default, May 15 2013, 22:43:36) [MSC v.1500 32 bit (Intel)] on win32 Typ ...

  9. iOS开发——控制器OC篇&UINavigationController&UITabBarController详解

    UINavigationController&UITabBarController详解 一:UINavigationController 控制器的属性: UINavigationControl ...

  10. mysql基本定义--数据类型

    浮点数类型与定点数类型: MySQL中使用浮点数类型和定点数类型来表示小数. 浮点数类型包括单精度浮点数(float型)和双精度浮点数(double型).定点数类型就是decimal型. OK,现在我 ...