EntityFramework简介
EntityFramework是什么?
1.是对ADO.NET 更高封装的ORM (对象关系映射)框架,跟Nhibernate类似
2.用面向对象的方式来操作关系数据库
3.目标: 提高开发效率,减轻维护工作
4.原理

LINQ to Entities 和 Entity SQL : EF 的两种查询语言,前者用Linq 方式查询,后者用SQL方言(比较少用)
Object Service : 将 Entity Client Data Provider 返回的数据 转换成 实体对象结构
Entity Client Data Provider : 主要作用是将 LINQ to Entities 和 Entity SQ 这些查询转换为 数据库的SQL查询
ADO.Net Data Provider : 执行 Entity Client Data Provider 生成的数据库SQL
总结 : 面向对象查询--> 通过EF ->生成相应数据库SQL --> ADO.NET 执行


怎么用?
1 . 生成实体框架模型
右击项目->添加->新建项->ADO.NET 实体数据模型->添加- >下一步->新建连接或者使用已有连接->
选择保存敏感数据->下一步->选择要映射的表,存储过程或者其他对象->完成
2 .增删改查
static void Main(string[] args)
{
using (AnuoDogEntities1 db = new AnuoDogEntities1())
{
//增加
UserInfo uf = new UserInfo();
uf.UserName = "anuo";
uf.PassWord = "";
uf.Address = "成都";
db.AddToUserInfo(uf);
db.SaveChanges(); //删除
UserInfo ufd = db.UserInfo.FirstOrDefault(ee => ee.UserName == "anuo");
db.DeleteObject(ufd);
db.SaveChanges(); //修改
UserInfo ufx = db.UserInfo.FirstOrDefault(ee => ee.UserName == "anuo");
ufx.UserName = "anuodog";
db.SaveChanges(); //查询 LINQ to Entities
var data =
from userInfo in db.UserInfo
where userInfo.UserName == "anuo"
select new
{
userName = userInfo.UserName,
password = userInfo.PassWord };
string name = "";
foreach (var item in data)
{
name += item.userName;
} //表连接查询(左连接)
var query =
from userInfo in db.UserInfo
join productInfo in db.ProductInfo
on userInfo.Id equals productInfo.UserId
select new
{
userName = userInfo.UserName,
productName = productInfo.ProductName
};
}
}
应用场景?
优点 : 开发效率高,适合简单数据操作
缺点 : 性能低 , 不适合复杂数据操作
怎么个性能低?

比原生的ADO.NET 确实慢得多. 适合小数据简单操作
原文链接 :
开发模式?
Database First 数据库首先 : 先设计好数据库 ,再从数据库生成实体模型
Model First 模型优先 : 先设计好模型 ,再从模型生成数据库
Code First 代码优先 : 编好代码,再从代码生成或映射数据库
资源?
入门: http://www.cnblogs.com/xray2005/category/189491.html
教程: http://www.entityframeworktutorial.net/
MSDN:
http://msdn.microsoft.com/zh-cn/library/bb399572(v=vs.100).aspx
主页: http://msdn.microsoft.com/zh-CN/data/ef
源码: https://github.com/aspnet/EntityFramework
团队blog: http://blogs.msdn.com/b/adonet/
EntityFramework简介的更多相关文章
- Entity Framework 一
本篇主要介绍:EntityFramework简介, 实体框架架构图, EF版本 实体框架: 编写和管理数据访问的ADO.Net代码是一件单调乏味的工作.微软已经提供了一个名为“实体框架”的O / RM ...
- 五:MVC使用数据库优先(DatabaseFirst)的方式创建数据模型
1. ORM概念 2. EF的DatabaseFirst模式使用 1. ORM简介 对象关系映射(Object Relational Mapping,简称ORM) ORM技术特点: 1.提高了开发效率 ...
- Webservice WCF WebApi 前端数据可视化 前端数据可视化 C# asp.net PhoneGap html5 C# Where 网站分布式开发简介 EntityFramework Core依赖注入上下文方式不同造成内存泄漏了解一下? SQL Server之深入理解STUFF 你必须知道的EntityFramework 6.x和EntityFramework Cor
Webservice WCF WebApi 注明:改编加组合 在.net平台下,有大量的技术让你创建一个HTTP服务,像Web Service,WCF,现在又出了Web API.在.net平台下, ...
- ASP.NET Core 1.1 Preview 1 简介(包含.NETCore 1.1升级公告)
ASP.NET Core 1.1 Preview 1于2016年10月25日发布.这个版本包括许多伟大的新功能以及许多错误修复和一般的增强. 要将现有项目更新到ASP.NET Core 1.1 Pre ...
- Asp.Net Core 项目实战之权限管理系统(3) 通过EntityFramework Core使用PostgreSQL
0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...
- 【无私分享:ASP.NET CORE 项目实战(第三章)】EntityFramework下领域驱动设计的应用
目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 在我们 [无私分享:从入门到精通ASP.NET MVC] 系列中,我们其实也是有DDD思想的,但是没有完全的去实现,因为并不是 ...
- 解读ASP.NET 5 & MVC6系列(1):ASP.NET 5简介
ASP.NET 5简介 ASP.NET 5是一个跨时代的改写,所有的功能和模块都进行了独立拆分,做到了彻底解耦.为了这些改写,微软也是蛮 拼的,几乎把.NET Framwrok全部改写了一遍,形成了一 ...
- ASP.NET Core 1.1 静态文件、路由、自定义中间件、身份验证简介
概述 之前写过一篇关于<ASP.NET Core 1.0 静态文件.路由.自定义中间件.身份验证简介>的文章,主要介绍了ASP.NET Core中StaticFile.Middleware ...
- ASP.NET Core 1.0 静态文件、路由、自定义中间件、身份验证简介
概述 ASP.NET Core 1.0是ASP.NET的一个重要的重新设计. 例如,在ASP.NET Core中,使用Middleware编写请求管道. ASP.NET Core中间件对HttpCon ...
随机推荐
- 使用FileSystemWatcher监控文件夹及文件
引言 这一周主要精力集中学习一个同事开发的本地文件搜索项目上,其中客户端添加共享文件时主要是使用FileSystemWatcher 监控文件,并在各种事件发生时向服务器发送消息. 解决方法 FileS ...
- OpenCV2:图像的几何变换,平移、镜像、缩放、旋转(1)
图像的几何变换是在不改变图像内容的前提下对图像像素的进行空间几何变换,主要包括了图像的平移变换.镜像变换.缩放和旋转等.本文首先介绍了图像几何变换的一些基本概念,然后再OpenCV2下实现了图像的平移 ...
- jQuery-1.9.1源码分析系列(十) 事件系统——事件绑定
事件绑定的方式有很多种.使用了jQuery那么原来那种绑定方式(elem.click = function(){...})就不推荐了,原因? 最主要的一个原因是elem.click = fn这种方式只 ...
- 20 个看起来很棒的 Web UI 工具包
程序员们比设计师更需要这些 UI 方面的内容: 1. Mini Reminders Mini Reminders 2. Transluscent UI elements Transluscent UI ...
- jquery的事件命名空间详解
jquery现在的事件API:on,off,trigger支持带命名空间的事件,当事件有了命名空间,就可以有效地管理同一事件的不同监听器,在定义组件的时候,能够避免同一元素应用到不同组件时,同一事件类 ...
- AngularJS----基本操作
之前的学习基本了解了AngularJS的常用方法,下来就继续学习吧. 创建自定义的指令 除了内置指令,我们可以创建自定义指令.通过.directive函数来添加. <div change-dat ...
- React Native文件介绍
一.index.ios.js文件中的东西 index.ios.js文件,是js代码的入口文件,所有的代码编写从这开始,可以定义自己的模块和引入第三方模块. import React, { Compon ...
- .NET设计模式(1):1.1 单例模式(Singleton Pattern)
概述 单例模式就是保证在整个应用程序的生命周期中,在任何时刻,被指定的类只有一个实例,并为客户程序提供一个获取该实例的全局访问点. 单例模式是一种常用的软件设计模式.在它的核心结构中只包含一个被称为单 ...
- 机器学习 - ML
CNCC - 2016 | 机器学习(原文链接) Machine Learning - ML,机器学习起源于人工智能,是AI的一个分支. 机器学习的理论基础:计算学习理论 - Computationa ...
- Hibernate插入数据后获得ID
很多表的主键都是自增型的,新增的记录使用save()方法保存以后,要获得ID,直接使用getId()就可以了,因为此时记录已经保存进数据库,已经有了ID. 另一种方法是使用MySQL的SELECT L ...