EF Code First、DbContext

对于之前一直使用webForm服务器控件、手写ado.net操作数据库的同学,突然来了EF和MVC,好多新概念一下泉涌而出,犹如当头一棒,的确有点不知所措。本系列文章可以帮助大家入门并熟练使用EF,有了这个基础以后再学习后续新版的EF或者其他ORM,那自然简单许多了。祝好运!

演示环境:EF4.1、VS2010+4.0 Framework、Sql 2008企业版

一、EF Code First

EF Code First系列文章译自Julie Lerman和Rowan Miller编写的Programming Entity Framework: Code First,主要讲解EF是如何通过代码来生成数据库并配置数据库表关系的。

EF Code First 系列文章导航

  1. EF Code First 初体验
  2. EF的默认映射以及如何使用Data Annotations和Fluent API配置数据库的映射  本节源码
  3. EF里Guid类型数据的自增长、时间戳和复杂类型的用法  本节源码
  4. EF里一对一、一对多、多对多关系的配置和级联删除  本节源码
  5. EF里的继承映射关系TPH、TPT和TPC的讲解以及一些具体的例子  本节源码

本系列文章sample code下载地址,当然你也可以下载我在每章结尾留的源码,更通俗易懂。欢迎加群交流:33353329

二、EF DbContext

EF DbContext系列文章译自Julie Lerman和Rowan Miller编写的Programming Entity Framework:DbContext,主要讲解EF是如何操作数据库的。

EF DbContext 系列文章导航

  1. EF如何操作内存中的数据和加载外键数据:延迟加载、贪婪加载、显示加载  本章源码
  2. EF的增删改查

本系列文章sample code下载地址,当然你也可以下载我在每章结尾留的源码,更通俗易懂。欢迎加群交流:33353329

三、Entity FrameWork

tO bE CoNtinUe.......

[MSSQL]如何高效查询表的总记录数

 

如何高效查询表的总记录数?[总结-整理-马克]

首先想到的自然是在表主键上应用COUNT函数来查询了,这个是目前使用最多的方法,没有之一

SELECT COUNT(1) ROWS FROM product

这里再给出一些其它方法,这些方法或多或少会有一些限制,或者看起来不是那么"完美",但依然有一定的借鉴意义,信息量不大,请客官慢用

另类方法1

充分利用系统自带的存储过程SP_SPACEUSED,详细的使用方式推荐谷哥或度娘,看代码

EXEC SP_SPACEUSED 'PRODUCT'

结果如下图所示

另类方法2

根据国际惯例,很多表都会设计一个步长为1的自增长整型(INT)列作为表主键,该做法优劣这里不展开讨论,仅基于这一"习惯",外加一个假设:该字段连续无为断,则可以使用MAX函数了,限制较多哈

1,自增长列

2,该列连续

SELECT MAX(ProductCode) TotalCount FROM Product

输出

如果我有这样的自增主键表,可是不连续,那就不能用咯?其实您可以使用ROW_NUMBER()函数进行修复,再取MAX是一样的,为了不至于太水,这里仍然归为另类方法2,复习ROW_NUMBER的同学点这里

另类方法3

充分使用系统表中的信息,优点是速度够快!缺点是数据不精确,所以要结合您自身项目的特点来判定是否适合使用该方法,代码奉上

SELECT ROWS FROM [sysindexes] WHERE id = OBJECT_ID('product') and indid < 2

输出结果

另类方法3修复数据不精确方法,执行以下SQL脚本即可,请不要在生产环境使用!

DBCC UPDATEUSAGE(0, 'product') with COUNT_ROWS

该脚本执行后输出:DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。

另类方法4,虚席以待,期待您的精彩点评!

上边介绍了一些系统表,系统存储过程,猜测您可能对下边的文章感兴趣

SQL SERVER 2008 函数大全 - 字符串函数

SQL2008系统统计函数

[MSSQL]GROUPING SETS,ROLLUP,CUBE初体验

[MSSQL]ROW_NUMBER函数

[MSQL]RANK函数

[MSSQL]NTILE另类分页有么有?!

[MSQL]也说SQL中显示星期几函数

[MSSQL]COALESCE与ISNULL函数

[MSSQL]PIVOT函数

[MSSQL]FOR XML AUTO I

[MSSQL]FOR XML AUTO II

[MSSQL]TRY…CATCH…通用格式

如果您喜欢该博客请点击右下角推荐按钮,您的推荐是作者创作的动力!

------------------------------------------
除非特别声明,文章均为原创,版权与博客园共有,转载请保留出处

 
 

EF Code First、DbContext的更多相关文章

  1. EF和MVC系列文章导航:EF Code First、DbContext、MVC

    对于之前一直使用webForm服务器控件.手写ado.net操作数据库的同学,突然来了EF和MVC,好多新概念泉涌而出,的确犹如当头一棒不知所措.本系列文章可以帮助新手入门并熟练使用EF和MVC,有了 ...

  2. 【干货】利用MVC5+EF6搭建博客系统(一)EF Code frist、实现泛型数据仓储以及业务逻辑

    习MVC有一段时间了,决定自己写一套Demo了,写完源码再共享. PS:如果图片模糊,鼠标右击复制图片网址,然后在浏览器中打开即可. 一.框架搭建 二.创建数据库 1.创建一个空的EF code fr ...

  3. 从零开始,搭建博客系统MVC5+EF6搭建框架(1),EF Code frist、实现泛型数据仓储以及业务逻辑

    前言      从上篇30岁找份程序员的工作(伪程序员的独白),文章开始,我说过我要用我自学的技术,来搭建一个博客系统,也希望大家给点意见,另外我很感谢博客园的各位朋友们,对我那篇算是自我阶段总结文章 ...

  4. 【记录】EF Code First 实体关联,如何添加、修改实体?

    在使用 EF Code First 的时候,我们经常会对项目中的 Entry 进行一对多.多对多的映射配置,这时候就会产生主实体和子实体的概念,我们在添加.修改他们的时候,有时候会产生一些问题,比如添 ...

  5. EF Code First 一对多、多对多关联,如何加载子集合?

    应用场景 先简单描述一下标题的意思:使用 EF Code First 映射配置 Entity 之间的关系,可能是一对多关系,也可能是多对多关系,那如何加载 Entity 下关联的 ICollectio ...

  6. MVC项目实践,在三层架构下实现SportsStore-01,EF Code First建模、DAL层等

    SportsStore是<精通ASP.NET MVC3框架(第三版)>中演示的MVC项目,在该项目中涵盖了MVC的众多方面,包括:使用DI容器.URL优化.导航.分页.购物车.订单.产品管 ...

  7. 【EF Code First】 一对多、多对多的多重关系配置

    这里使用用户表(User)和项目(Project)表做示例 有这样一个需求: 用户与项目的关系是:一个用户可以发多个项目,可以参加多个项目,而项目可以有多个参与成员和一个发布者 [其中含1-n和n-n ...

  8. EF Code First一对一、一对多、多对多关联关系配置

    1.EF Code First一对一关联关系 项目结构图: 实体类: Account.cs using System; using System.Collections.Generic; using ...

  9. 【Docker】 .Net Core 3.1 webapi 集成EF Code First,使用MySql进行业务操作 、配置swagger (三)

    系列目录: [Docker] CentOS7 安装 Docker 及其使用方法 ( 一 ) [Docker] 使用Docker 在阿里云 Centos7 部署 MySQL 和 Redis (二) [D ...

随机推荐

  1. Appium:通过wifi连接Android设备

    1.首先用USB连接你的Android设备,然后在终端运行命令,它可以启动设备的5555端口使其在网络上可以连接. adb tcpip 2.现在断开USB连接,然后确保设备和你的电脑连接同一个无线网络 ...

  2. 再议 js 数字格式之正则表达式

    原文:再议 js 数字格式之正则表达式 前面我们提到到了js的数字格式<浅谈 js 数字格式类型>,之前的<js 正则练习之语法高亮>里也提到了优化数字匹配的正则.不过最近落叶 ...

  3. &lt;C++ 实现设计模式&gt; 观察者模式

    观察者模式,又称公布--订阅,mvc模式等. 通俗点讲,比方股票来说,非常多人关注一支股票,派一个人去观察股票的情况,一有变化(观察),就通知全部的预定这个消息的人. 而我们常见的mvc模式,v是指v ...

  4. 在windows下用C语言写socket通讯实例

    原文:在windows下用C语言写socket通讯实例 From:Microsoft Dev Center #undef UNICODE #define WIN32_LEAN_AND_MEAN #in ...

  5. 2014阿里实习生面试题——mysql如何实现的索引

    这是2014北京站的两副面孔阿里实习生问题扯在一起: 在MySQL中.索引属于存储引擎级别的概念,不同存储引擎对索引的实现方式是不同的,比方MyISAM和InnoDB存储引擎. MyISAM索引实现: ...

  6. ASP.NET 5:初始化数据库

    ASP.NET 5:初始化数据库 1.初始化数据库 1.2目录 这不是专述模式/架构设计的帖子,架构搭建以讲解文章为目的,先不过多分层. 截这个图也是便于你对应下面找代码文件路径! 1.2代码 先控制 ...

  7. thrift实现js与C#通讯

    利用thrift实现js与C#通讯的实例代码 1.为什么要用thrift js C#? 1.1 首先,js 通过 thrift 访问C#,实际上是一种c/s模式.thrift是通信工具,js是客户端, ...

  8. MonkeyRunner源码分析之-谁动了我的截图?

    本文章的目的是通过分析monkeyrunner是如何实现截屏来作为一个例子尝试投石问路为下一篇文章做准备,往下一篇文章本人有意分析下monkeyrunner究竟是如何和目标测试机器通信的,所以最好的办 ...

  9. Lyx输入中文与代码高亮

    如果您看了我的这个随笔:<OpenSUSE 13.2安装Texlive2014+Texmaker+Lyx> (一)LyX中文 打开Lyx直接新建开始使用,那么输入的中文会是编译失败的,疑? ...

  10. onsite

    领英.脸书面试以及onsite小记(北美)   最近两个月忙于找工作,投了不少简历,比较牛逼的公司里面就领英和脸书理我了,都是同学朋友内推的功劳.没想到自己也比较争气,一路杀到了最后一轮,拿到了两家的 ...