本文转自:http://diaosbook.com/Post/2012/9/21/linq-paging-in-entity-framework 我们知道,内存分页效率很低.并且,如果是WebForm的项目,页面上会有巨型ViewState,这必然不好.我自己博客用的是一个存储过程做的分页,用到现在都挺好,没有任何效率问题.后来想到,既然项目里有Entity Framework,那为什么不利用EF完成分页呢- 稍做研究之后发现,EF分页其实很简单.不过一样写文章了,光贴代码是不负责的,还是得稍微…
从Entity Framework  4开始在ObjectContext对象上提供了2个方法可以直接执行SQL语句:ExecuteStoreQuery<T> 和 ExecuteStoreCommand. 1.使用ExecuteStoreQuery<T> :通过sql查询返回object实体,有有许多需要注意: 1.sql = "select * from Payment where Vendor= @vendor";之所以能写成select *是因为Paymen…
       如果想在EF框架中执行Sql语句,其实很简单,EF里面已经提供了相关的方法(此处使用的EF为EF4.1版本).        EF中提供了两个方法,一个是执行查询的Sql语句SqlQuery,另外一个是执行非查询的语句ExecuteSqlCommand.使用起来也很简单.SqlQuery有两种形式的,一种是泛型的,一种是非泛型的.比如我们要在目录表中查询ID为多少的一个分类.可以这样写: entityList = dbContext.Set<Catalog>().SqlQuery…
在Linq to sql 和 Entity framework 中使用lambda表达式实现left join 我们知道lambda表达式在Linq to sql 和 Entity framework 中使用join函数可以实现inner join,那么怎么才能在lambda表达式中实现left join呢?秘诀就是在join后面加上一个函数DefaultIfEmpty函数,实际上这个函数在linq中貌似也只有将inner join转换为left join的作用,示例如下 var joinRes…
在.Net开发中,Entity framework是微软ORM架构的最佳官方工具.我们可以使用Lambda表达式在Entity framework中DbSet<T>类上直接做查询(比如使用DbSet<T>类的Where.First.Count等查询函数)返回数据库结果实体. 不知道大家有没有注意到DbSet<T>类上的很多查询函数都有两种类型的重载,就拿Where这个查询函数举例: 一种是传入Func<Tsource, bool>委托作为参数 public…
        在Entity Framework中有三种加载的方式,分别是延迟加载,自动加载和显示加载.下面用一个例子来说明:现在有两个表,一个是资料表(Reference),另外一个表是资料分类表(Catalog).一个资料属于某一个分类,但是一个分类下可以包含多个资料.是一个一对多的关系.        两个实体类代码如下: public partial class Catalog { public Catalog() { this.References = new List<Refere…
问: I would like know what is the best possible way to implement transactions with DBContext. In particular, Does DbContext.SaveChanges implement transaction internall if i change multiple entities? If i want to call DbContext.SaveChanges multiple tim…
Entity Framework中的实体类型 : 在之前的章节中我们介绍过从已有的数据库中创建EDM,它包含数据库中每个表所对应的实体.在EF 5.0/6.0中,存在POCO 实体和动态代理实体两种. POCO Entity (Plain Old CLR Object): POCO类是不依赖任何框架的类型,如同其他正常的一般类型,我们称之为"Plain Old CLR Objects"(这里不知道怎么翻译,普通的CLR对象?古老的CLR对象?大概意思就是没有什么特殊的对象吧). POC…
关于Entity Framework中的Attached报错的问题,我这里分为以下几种类型,每种类型我都给出相应的解决方案,希望能给大家带来一些的帮助,当然作为读者的您如果觉得有不同的意见或更好的方法,欢迎一起探讨! 1.单个实体对象在进行改删时出现Attached报错,解决方案,请参见: http://www.cnblogs.com/zuowj/p/4523075.html http://www.cnblogs.com/scy251147/p/3688844.html 原理:清除context…
之前发表过一篇文章题为<关于Entity Framework中的Attached报错的完美解决方案>,那篇文章确实能解决单个实体在进行更新.删除时Attached的报错,注意我这里说的单个实体,指的是要更新或删除的实体不包含其它实体(比如导航属性就包含其它实体),也就是简单POCO对象:但如果不是呢?那么那篇文章里的方法在一定程度上不起作用了,仍会报错,我开始也想不明白,明明通过IsAttached函数判断要更新的实体并未Attached,但进行Attaching时但仍然报错说有相同Key,开…