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. JavaScript寻踪OOP之路

    上一集中,重点介绍了谁动了你的代码.这里先总结一下:咱们的代码从敲下来到运行出结果,经历了两个阶段:分析期与运行期.在分析期,JavaScript分析器悄悄动了我们的代码:在运行期,JavaScrip ...

  2. c语言操作符 “++”另类行为

    正常情况下,我们使用++ int a = 1; a++; printf(“%d”,a); // 2; 很简单没什么好说的. #include <stdio.h>   int main() ...

  3. CMSIS RTOS -- embOS segger

    #ifndef __CMSIS_OS_H__ #define __CMSIS_OS_H__ #include <stdint.h> #include <stddef.h> #i ...

  4. MySQL中你肯定不知道的int隐情

    MySQL中定义id字段为int类型,但是你知道它内部是什么玩意吗? 1.如果定义int类型,但是不声明长度,系统默认为11个长度(这个大家都知道): 2.如果指定长度小于11,实际上系统还是默认为1 ...

  5. hadoop备战:hadoop,hbase兼容版本号汇总

    Hbase的安装须要考虑Hadoop的版本号,即兼容性.有不足的希望能指出. 下面考究官网得到的,关于hadoop版本号和hbase版本号可到下面网址中下载:http://mirror.bit.edu ...

  6. hdu 5273 Dylans loves sequence 逆序数简单递推

    Dylans loves sequence Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem ...

  7. [译]如何在Unity编辑器中添加你自己的工具

    在这篇教程中你会学习如何扩展你的Unity3D编辑器,以便在你的项目中更好的使用它.你将会学习如何绘制你自己的gizmo,用代码来实现创建和删除物体,创建编辑器窗口,使用组件,并且允许用户撤销他们所作 ...

  8. 苹果iOS手机暗藏间谍软件的揭秘者:扎徳尔斯基

    大家知道,苹果iOS手机的短消息server(SMS)是用硬件加密的,看起来非常安全.可是,Jonathan Zdziarski发现苹果公司有意地放进去一个"文件转发server" ...

  9. 微信公共服务平台开发(.Net 的实现)8-------处理图片(上传下载发送)

    举个例子,有人对着我们的公共微信号拍个照片发送过来,然后我们处理这个照片,比如进行ocr识别字(随后就会降到这个例子),或者人脸识别,或者拍照取证等,这些功能都是相当有用的.那么我们现在就要分析一下这 ...

  10. [NodeJS] Deploy a Node Application with the Now CLI

    Now offers a friction-free way to deploy node applications right from the terminal. In this lesson, ...