Entity Framework教程(8)
这是一个系列,共有 8 篇,这是第 8 篇。 Entity Framework 4.1 之一 : 基础 Entity Framework 4.1 之二 : 覆盖默认的约定 Entity Framework 4.1 之三 : 贪婪加载和延迟加载 Entity Framework 4.1 之四:复杂类型 Entity Framework 4.1 之五:多对多的关系 Entity Framework 4.1 之六:乐观并发 Entity Framework 4.1 之七:继承 Entity Framework 4.1 之八:绕过 EF 查询映射 这是这了系列的最后一篇,我将讨论如何绕过 EF 的查询映射。 像所有优秀的框架一样,EF 知道它并不能优秀到覆盖所有的角落,通过允许...
Entity Framework教程(7)
这是一个系列,共有 8 篇,这是第 7 篇。 Entity Framework 4.1 之一 : 基础 Entity Framework 4.1 之二 : 覆盖默认的约定 Entity Framework 4.1 之三 : 贪婪加载和延迟加载 Entity Framework 4.1 之四:复杂类型 Entity Framework 4.1 之五:多对多的关系 Entity Framework 4.1 之六:乐观并发 Entity Framework 4.1 之七:继承 Entity Framework 4.1 之八:绕过 EF 查询映射 在 ORM 文献中,有三种方式将对象的继承关系映射到表中。 每个类型一张表 TPT: 在继承层次中的每个类都分别映射到数据库中的一张表...
Entity Framework 教程(4)
这是一个系列,共有 8 篇,这是第 4 篇。 Entity Framework 4.1 之一 : 基础 Entity Framework 4.1 之二 : 覆盖默认的约定 Entity Framework 4.1 之三 : 贪婪加载和延迟加载 Entity Framework 4.1 之四:复杂类型 Entity Framework 4.1 之五:多对多的关系 Entity Framework 4.1 之六:乐观并发 Entity Framework 4.1 之七:继承 Entity Framework 4.1 之八:绕过 EF 查询映射 这篇文章将讨论复杂类型。 默认情况下,EF4.1 将类映射到表,这是约定,但是有时候,我们需要模型比表的粒度更细一些。  ...
Entity Framework教程(3)
这篇文章将讨论查询结果的加载控制。 EF4.1 允许控制对象之间的关系,当我们进行查询的时候,哪些关系的数据将会被加载到内存呢?所有相关的对象都需要吗?在一些场合可能有意义,例如,当查询的实体 仅仅拥有一个相关的子实体,但是,多数情况下,你可能只需要加载部分数据,或者你喜欢的话,加载更多的数据。 默认情况下, EF4.1 仅仅加载查询中涉及的实体,但是它支持两种特性来帮助你控制加载: 贪婪加载 延迟加载 贪婪加载 对于下面的查询 using (var context =new MyDomainContext()) { var order...
Entity Framework 教程(2)
这是一个系列,共有 8 篇,这是第2 篇。 为了帮大家看起来方便一些,列出目录: Entity Framework 4.1 之一 : 基础 Entity Framework 4.1 之二 : 覆盖默认的约定 Entity Framework 4.1 之三 : 贪婪加载和延迟加载 Entity Framework 4.1 之四:复杂类型 Entity Framework 4.1 之五:多对多的关系 Entity Framework 4.1 之六:乐观并发 Entity Framework 4.1 之七:继承 Entity Framework 4.1 之八:绕过 EF 查询映射 在这篇文章中,我将讨论如何覆盖默认的约定。 我们已经看过了在 EF4.1 C...
Entity Framework教程(1)
这是一个系列,共有 8 篇,这是第 1 篇。 为了帮大家看起来方便一些,列出目录: Entity Framework 4.1 之一 : 基础 Entity Framework 4.1 之二 : 覆盖默认的约定 Entity Framework 4.1 之三 : 贪婪加载和延迟加载 Entity Framework 4.1 之四:复杂类型 Entity Framework 4.1 之五:多对多的关系 Entity Framework 4.1 之六:乐观并发 Entity Framework 4.1 之七:继承 Entity Framework 4.1 之八:绕过 EF 查询映射 从 Code First 的名字可以猜到,使用 Code-First,你需要从代码开始数据的工作,你可以直接通...
Linq Max函数用法
今天试着从Entity FrameWork 的DbSet中查询出ID最大的那一条记录,用原生的select语句该这样写: view plain select * from Trip.dbo.Test where SID=(select MAX(SID) from Trip.dbo.Test) 可是用Linq该怎样写呢?我们可以试着按原生的select语句来写,如: view plain TripEntities te = new TripEntities(); DbSet<Test> testSet = te.Set<Test>(); var a = testSet.Where(t => t.SID == testSet.Max(tt => tt.SID)); 或者 view plain var a = from test in te...
EF数据丢失
ef4.1 codeFirst 修改表结构 增加字段等 EF code first需要重新生成库导致数据丢失的问题 说这个问题前 首先先说下 我使用ef4.1 codefirst的目的. 是因为可以有更纯净的POCO 不再有EDMX这些东西 而不是真正的用 code first 先有代码 再生成数据库.所以 我虽然使用 的是codefirst 但是本质依然是数据库优先. 所以这个被问的很多的问题 解决办法其实是非常简单的.只要你的数据库已经存在了 那么即使你用code first ef 也不会给你去生成数据库的. 这个时候 你增加表字段 甚至增加表 只要把 实体类也相应的修改 则数...
EF使用存储过程
ef4.1 没有了edmx等复杂的东西 变得简单 干净 但如何使用存储过程,存储过程可以返回表 可以返回数值 也有可能是执行修改 删除 增加等 该怎么做? 说这个问题前 依然先说下我的观点.个人认为 既然使用orm框架 就应该把业务逻辑等 都放到业务逻辑层 而不应该再使用存储过程。我更偏重重业务逻辑层 轻存储过程这样的开发~ 再ef4.0里 添加存储过程 比较容易 有edmx 调一调 存储过程就添加上了 但是在ef4.1里 只有干净的poco 不再有edmx了 改怎么办呢?尤其是存储过程可以是查表 查值 或者执行修改删除. 一个一个来...