C# mvc--EF中查询的本质
UI层我直接用了窗体程序。 好了 不罗嗦 直接上代码……
private void button1_Click(object sender, EventArgs e)
{
//1.0创建EF上下文容器
phonebookEntities db = new phonebookEntities();
//2.0 查询GropuInfo表中的 GroupId>10的所有数据
);
//3.0将sql语法发送给db执行 返回结果集
List<GroupInfo> list = sql.ToList();
list.ForEach(c=>Console.WriteLine(c.GroupName));
}
下面看看数据库的数据

下面的截图是程序执行的结果

EF查询的过程:
1.0 创建上下文容器
2.0 根据where方法 生成对应的sql语句 这个时候呢 还是木有数据的 这里的var 其实可以换成Iqueryable 来接收
这里的sql语句是:select groupid, groupName from groupInfo where groupid>10
这个生成的sql语句我就不截图了 可以用sql server再带的profile 来拦截发送到数据库的请求咯
3.0 调用Tolist() --->将生成sql 语句交给ado.net 有ado.net向DB发起请求 然后将获取到的结果集返回
或许我们会有这样一个疑问 为什么EF能够准确的生成groupinfo表的字段名和表名称呢
原因:where方法是扩展自Iqueryable上的方法 所以回去edmx中查找groupinfo的节点 然后遍历出所有的属性名称左右select 后面的字段 再根据程序员传入的lambda表达式 groupid>10 生成一个完整的sql 语句
最后的图解:

C# mvc--EF中查询的本质的更多相关文章
- mvc+ef中比较数据
例如:根据Para表中的type和paraid 字段进行比较 public class TypeComparer : IEqualityComparer<Para> { bool IEqu ...
- ASP.NET MVC 学习笔记之 MVC + EF中的EO DTO ViewModel
EO: Entity Object 就是EF中的实体类, 对EO的操作会对数据库产生影响. DTO: Data Transfer Object 数据传输对象.用于在各层之间传递数据的普通类,DTO有哪 ...
- ASP.NET MVC EF 中使用异步控制器
最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷 学无止境,精益求精 为什么使用异步操作/线程池 ASP.NET MVC ...
- MVC EF中Attach和Entry区别
EF:加入容器三种方式-->查询,attach,entry.不在容器里,不能用remove,add等方法. 1.0 使用Attach可能会出错.//attach 意思:附上; 贴上,系;var ...
- C# MVC EF中匿名类使用
控制器中代码: var list = context.Says.Join( context.Users, a => a.UserId, b => b.Id, (a, b) => ne ...
- easyui datagrid 禁止选中行 EF的增删改查(转载) C# 获取用户IP地址(转载) MVC EF 执行SQL语句(转载) 在EF中执行SQL语句(转载) EF中使用SQL语句或存储过程 .net MVC使用Session验证用户登录 PowerDesigner 参照完整性约束(转载)
easyui datagrid 禁止选中行 没有找到可以直接禁止的属性,但是找到两个间接禁止的方式. 方式一: //onClickRow: function (rowIndex, rowData) ...
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(20)-多条件模糊查询和回收站还原的实现
原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(20)-多条件模糊查询和回收站还原的实现 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) (1):框架 ...
- ASP.NET MVC EF直接更新数据(不需查询)
EF(EntityFrameWork) ORM(对象关系映射框架/数据持久化框架),根据实体对象操作数据表中数据的一种面向对象的操作框架,底层也是调用ADO.NET ASP.NET MVC 项目会自动 ...
- Cookies 初识 Dotnetspider EF 6.x、EF Core实现dynamic动态查询和EF Core注入多个上下文实例池你知道有什么问题? EntityFramework Core 运行dotnet ef命令迁移背后本质是什么?(EF Core迁移原理)
Cookies 1.创建HttpCookies Cookie=new HttpCookies("CookieName");2.添加内容Cookie.Values.Add(&qu ...
随机推荐
- VoHelper
VoHelper package com.isoftstone.pcis.policy.core.helper; import com.isoftstone.fwk.dao.CommonDao; im ...
- getGuid()
function GetGUID: string;var LTep: TGUID;begin CreateGUID(LTep); Result := GUIDToString(LTep); R ...
- Problems running django-admin
“command not found: django-admin”¶ django-admin should be on your system path if you installed Djang ...
- JQ的each
写法一:遍历JSON数据 $.each(JSON.parse("{" + msg.d + "}"), function (key, name) { //处理得到 ...
- branch
1.删除分支 git branch -d branch_name error: The branch 'branch_name' is not fully merged. If you are sur ...
- 关于 mobile sui a外链 老是出现加载失败的解决办法
mobile sui 框架里面的a本身都绑了了一个ajax方法,ajax只能处理同域,跨域就会出现问题 ,所以mobile sui 中的a如果是外链的话就会出现加载失败的提示,这种明显的bug,让用户 ...
- Ubuntu 搭建PHP开发环境
Ubuntu确实很好玩.有喜欢的命令行,简洁的界面,不同于Window要的感觉.偶尔换换环境工作,学习Linux的思维方式,是一种不错的做 法.之前也折腾过Ubuntu,不过,因为网络的问题,一直没有 ...
- 无责任Windows Azure SDK .NET开发入门篇三[使用Azure AD 管理用户信息]
三.使用Azure AD管理用户信息 在上一章我们采用OpenID的方案和Azure AD交互进行身份验证,本章节我们继续了解如何在Azure AD中创建用户,列出用户信息,修改用户信息和删除用户信息 ...
- 16.ARC
Swift 使用自动引用计数(ARC)机制来跟踪和管理应用程序的内存.通常情况下,Swift 内存管理机制会一直起作用,我们无须自己来考虑内存的管理.ARC 会在类的实例不再被使用时,自动释放其占用的 ...
- Putty 工具 保存配置的 小技巧
用Putty 已经很长时间了,但一直被一个问题困扰,有时候是懒得去弄,反正也不怎么碍事,今天小研究了下,把这个问题解决了,心里也舒服了. Putty是一个免费小巧的Win32平台下的telnet,rl ...