ADO.NET Entity Framework 学习(1) [ZT]
本文由一个简单的例子进行介绍Entity Framework是如何使用的。在此之前,必须下载ADO.NET Entity Framework runtime 和tools,官方也提供了很多示例下载。下面正式开始ADO.NET Entity Framework之旅(开发工具VS 2008 beta,以Northiwind数据库为例)。
首先建立一个Console project(要选择.NET Framework 3.5),然后点击Add New Item,看见ADO.NET Entity Data Model选项:
然后会出现Wizard,选择数据库,选择表、视图、存储过程等,按照向导一步步来就可以了,在这里只选择Customers和Orders表。在Solution Explore视图里面点击Northwind.edmx,可以看到Entity的信息(看上去很像Linq To SQL的dbml设计视图),然后将它们改名为Customer和Order。
现在我们就可以进行查询了,先引用命名空间:
using System.Data.Objects; using NorthwindModel;
首先我们查询所有的Customer,代码和Linq To SQL中的十分相似。
using (NorthwindEntities ctx = new NorthwindEntities()){foreach (var customer in ctx.Customers){Console.WriteLine(customer.CustomerID);}}
接着来查询某个Customer,
Customer alfki = ctx.Customers.Where("it.CustomerID = 'ALFKI'").First();
"it.CustomerID = 'ALFKI'"表示查询条件语句,该语句看着又像C#代码又像SQL,被成为Entity SQL Language,具体语法在帮助文档上有很详细的Reference。
这里也可以使用Linq进行查询(Linq To Entities),需要引用System.Linq命名空间,似乎Entity Framework不支持Single方法,会抛出异常。
Customer alfki = ctx.Customers.First<Customer>(it => it.CustomerID == "ALFKI");
或者
Customer alfki = (from c in ctx.Customerswhere c.CustomerID == "ALFKIA" select c).First();
在Entity Framework中进行一对多的查询很简单,但是值得注意的是Entity Framework默认是Lazy Load,即关联数据在需要的时候才加载。
在本例子中,如果直接查询该Customer关联的orders,查询不到结果。
foreach (var order in alfki.Orders){Console.WriteLine(order.OrderID);}
需要在使用orders之前调用 alfki.Orders.Load(), 再次运行便可以得到正确的结果。
转载于:https://www.cnblogs.com/RobotTech/archive/2007/10/14/923968.html
ADO.NET Entity Framework 学习(1) [ZT]相关推荐
- ADO.NET Entity Framework 学习
前一段时间园子里有很多文章介绍分析了Linq To SQL,它可以说是一个简单实现的ORM,是微软针对数据和对象的阻抗不平衡的问题.C# 3.0推出一些新的特性,比如Extension Method, ...
- ADO.NET Entity Framework 学习(1)
前一段时间园子里有很多文章介绍分析了Linq To SQL,它可以说是一个简单实现的ORM,是微软针对数据和对象的阻抗不平衡的问题.C# 3.0推出一些新的特性,比如Extension Method, ...
- ADO.NET Entity Framework学习笔记(2)建模[转]
模型结构 [概念模型]中要有[实体键], [实体键]要与表中的 [主键] 对应,也就是说表必须要有主键. 表中的[唯一键]不会在[概念模型]中体现 在[概念模型]中默认是不允许修改[实体键]的值的 联 ...
- ADO.NET Entity Framework学习笔记(4)ObjectQuery对象
ObjectQuery<T>数据加载方式 1. ObjectQuery<T> 提供了一个管理[实体对像]集合 2. ObjectQuery<T>继承System.D ...
- EF架构~了解一下,ADO.NET Entity Framework
回到目录 以下文章部分来自百度百科 背景 长久以来,程序设计师和数据库总是保持着一种微妙的关系,在商用应用程序中,数据库一定是不可或缺的元件,这让程序设计师一定要为了连接与访问数据库而去 学习 SQL ...
- Entity Framework (EF)/Linq To entity/ ESQL(entity sql)区别 ADO.NET Entity Framework:来自微软官方的ORM框架
长久以来,程序员和数据库总是保持着一种微妙的关系,在商用应用程序中,数据库一定是不可或缺的元件,这让程序员一定要为了连接与访问数据库而去学习 SQL 指令,至少对于我而言,我觉得这是一个很不爽的事情. ...
- 软件开发知识--[ADO.NET Entity Framework]
ADO.NET Entity Framework 是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R Mapping) 解决方案,早期被称为 ObjectSpace,现已经包含在 Vi ...
- Entity Framework 学习
Entity Framework 学习初级篇1--EF基本概况... 2 Entity Framework 学习初级篇2--ObjectContext.ObjectQuery.ObjectStateE ...
- EF(ADO.NET Entity Framework)
对象/关系映射框架 ADO.NET Entity Framework 是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R Mapping) 解决方案.该框架曾经为.NET Framew ...
最新文章
- R语言使用ggpubr包的ggarrange函数组合多张结论图(水平并排组合)
- 自由自在讲述小资与冰淇淋的美丽生活
- ajax 下拉框 保留,Ajax生成select级联下拉框和清空多余选项
- centos 7.x systemd service 配置方法整理
- (02)Verilog HDL模块
- 【干货】Python玩转各种多媒体,视频、音频到图片
- 联合国devnet_联合国人权可能会适用于人工智能,如果是这样,考虑一下自动驾驶汽车的奇怪案例
- 计算机 工程伦理论文题目,北京工业大学研究生院
- 电脑qq浏览器怎么滚动截长图_QQ浏览器怎样实现长截图
- 60题计算机专业知识点,计算机考试题库:计算机考试练习题(60)
- 2006东京游戏展游历
- java地图代码_如何在Java中生成地图?
- Typora收费了, 还有哪些好用的markdown工具
- 论文写作总结(中外文对比)
- 公司中的一些职位名称及其缩写
- 【百度地图API】如何在地图上添加标注?——另有:坐标拾取工具+打车费用接口介绍
- python做马尔科夫模型预测法_李航《统计学习方法》第十章——用Python实现隐马尔科夫模型...
- 2022危险化学品生产单位安全生产管理人员考试题库模拟考试平台操作
- P11-Windows与网络基础-Windows用户管理
- Autolabor Simulator激光雷达导航与避障(模拟平台)