Entityframework Code First 系列之项目搭建
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:
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 系列之项目搭建的更多相关文章
- Entityframework Code First 系列之数据注释
上一篇<Entityframework Code First 系列之项目搭建>讲了搭建一个Code First的控制台项目.里面有一些内容并没有扩展出来讲,因为篇幅有限.这篇针对上面内容中 ...
- Vue.js系列之项目搭建
项目搭建具体步骤如下: 1.安装node (中)https://nodejs.org/zh-cn/ (英)https://nodejs.org/en/ 2.安装cnpm镜像 (node自带安装了npm ...
- Vue.js系列之项目搭建(1)
项目搭建具体步骤如下: 1.安装node 到官网下载安装,我这里是win7系统. (中)https://nodejs.org/zh-cn/ (英)https://nodejs.org/en/ 2.安装 ...
- Entityframework Code First 系列
总篇, 下面会添加每个小篇的链接. 目录如下: 项目搭建 ……
- Vue.js系列之项目搭建(vue2.0 + vue-cli + webpack )
1.安装node node.js环境(npm包管理器) cnpm npm的淘宝镜像 从node.js官网下载并安装node,安装过程很简单,一路“下一步”就可以了(傻瓜式安装).安装完成之后,打开命令 ...
- .net Dapper 实践系列(1) ---项目搭建(Layui+Ajax+Dapper+MySQL)
目录 写在前面 一.前期准备 1.在MySQL创建数据库 2.创建项目 3.安装程序包 4.添加插件 5.添加DbOption文件夹 6.添加实体类 写在前面 学习并实践使用Dapper 这个小型的O ...
- 项目搭建系列之一:使用Maven搭建SpringMVC项目
约定电脑都安装了eclipse,且已配置好Maven以及eclipse插件. 1.Eclipse 2.maven 3.Eclipse 需要安装maven插件.url:maven - http://do ...
- mvc项目架构分享系列之架构搭建初步
mvc项目架构分享系列之架构搭建初步 Contents 系列一[架构概览] 0.项目简介 1.项目解决方案分层方案 2.所用到的技术 3.项目引用关系 系列二[架构搭建初步] 4.项目架构各部分解析 ...
- Asp.net mvc项目架构分享系列之架构搭建初步
copy to:http://www.cnblogs.com/ben121011/p/5014795.html 项目架构各部分解析 Core Models IDAL MSSQLDAL IBLL BLL ...
随机推荐
- Bit Twiddling Hacks
http://graphics.stanford.edu/~seander/bithacks.html Bit Twiddling Hacks By Sean Eron Andersonseander ...
- java android ExecutorService 线程池解析
ExecutorService: 它也是一个接口,它扩展自Executor接口,Executor接口更像一个抽象的命令模式,仅有一个方法:execute(runnable);Executor接口简单, ...
- Server对象的Execute方法
Server 对象是专门为处理服务器上的特定任务而设计的,它提供了对服务器上的方法和属性的访问,通过调用这些方法和属性的设置,可以允许用户使用服务器上的许多功能,如可以取得服务器运行环境的功能,但最重 ...
- CSS Sprites图片处理
简介: CSS Sprites是一个网页图片处理方式,在国内都叫CSS精灵,css Sprites允许你将一个页面涉及到的所有零星图片都包含到一张大图中去,这样一来,当访问该页面时,载入的图片就不会像 ...
- ChRoomtst
https://github.com/JawaJedi/ChRoomtst
- [Angular 2] Nesting Elements in Angular 2 Components with ng-content (AKA Angular 2 Transclusion)
You can place content inside of the instance of your component element then manage it inside of the ...
- iOS开发——实战篇Swift篇&UItableView结合网络请求,多线程,数据解析,MVC实战
UItableView结合网络请求,多线程,数据解析,MVC实战 学了这么久的swift都没有做过什么东西,今天就以自己的一个小小的联系,讲一下,怎么使用swift在实战中应用MVC,并且结合后面的高 ...
- 你真的会使用SQL Server的备份还原功能吗?之二:主要备份类型
假设在下面几个时间段中,一个数据库积累插入了如下数据: 1.完整数据库备份 故名思意,完整数据库备份包括完整的数据库信息.它包括数据库的数据文件和备份结尾的部份活动事务日志. 完整备份基本语法如下: ...
- QThread与QWidget使用
本文主要内容: 在任务一中,用 四 种方式实现:点击界面按钮,开线程运行一段程序,结果显示在一个Label上.1. 用不正确的方式得到看似正确的结果2. 用Qt Manual 和 例子中使用的方法3. ...
- Ubuntu下安装可视化SVN客户端Rabbitvcs
如果你用过Windows下的tortoisesvn,肯定会感叹,同样是开源程序,为什么这些开源的东西不在开源的系统上先跑呢? 不用着急,那边有个乌龟,这篇有只兔子,只是看了太多的龟兔赛跑的故事,不知到 ...