Entity Framework 4.1 推荐英文教程
来源:互联网 发布:费米估算法 维基百科 编辑:程序博客网 时间:2024/05/22 07:58
Entity Framework 4.1 之一 : 基础
2011-05-22 09:35:23| 分类:Entity Framework | 标签:web mvc |字号大中小 订阅
原文地址:http://vincentlauzon.wordpress.com/2011/04/03/entity-framework-4-1-basics-1/
看到 Entity Framework 4.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 查询映射
让我们通过一个简单的实体模型开始吧:订单和订单明细,我们使用下面的类来建模。
public class Order { public int OrderID { get; set; } public string OrderTitle { get; set; } public string CustomerName { get; set; } public DateTime TransactionDate { get; set; } public List<OrderDetail> OrderDetails { get; set; } } public class OrderDetail { public int OrderDetailID { get; set; } public int OrderID { get; set; } public decimal Cost { get; set; } public string ItemName { get; set; } public Order Order { get; set; } }
注意类的下述特点:
- 没有派生自任何 EF 类
- 没有使用 EF 标签
- 订单 Order 包含若干的订单明细 OrderDetail,订单明细包含一个指向订单的引用。
- 每一个属性是:
- 简单的 CLR 类型,例如:string, int 等等
- 实体类型,例如:订单
- 实体的 List 集合,例如:List<OrderDetail>
需要通过一个容器将这些类映射到数据库,这里称为 Database-Context:
public class MyDomainContext : DbContext { public DbSet<Order> Orders { get; set; } public DbSet<OrderDetail> OrderDetails { get; set; } static MyDomainContext() { Database.SetInitializer<MyDomainContext>( new DropCreateDatabaseIfModelChanges<MyDomainContext>()); } }
这个类是 EF 相关的,它不需要与你的模型类出现在同一个程序集中。
context 必须满足下面的要求:
- 派生自 System.Data.Entity.DbContext
- 对于你希望使用的每一个实体集定义一个属性
- 每一个属性的类型是 System.Data.Entity.DbSet<T>,T 就是实体的类型
- 每一个属性都是读写属性 read/write ( get/set )
在这里,DbContext 基类通过反射来获取映射到数据库的实体。这遵循一系列的约定。
例如,对于 Order 来说,他的属性 OrderID 必须是主键,其它的约定将用来推断列名和列的类型,默认数据库中的列名是属性名,使用 string 类型来影射数据库中的 nvarchar(128), 如果属性的类型是可空的,那么,影射到数据库中的允许 NULL 等等。以后我们可以看到如果覆盖这些约定。
我们将增加一个静态的构造函数,这个静态的构造函数对于整个应用程序域来说建立一个标准,当数据库的上下文初始化的时候,检查数据库的架构是否 与模型相符,如果不是的话,将删除数据库然后重新创建它。EF 将会创建一个名为 dbo.EdmMetadata 的表,然后将模型结构的 Hash 保存到其中来实现。
如果数据库不存在,EF 将会创建它,创建什么数据库呢?默认情况下,将在你的本地机器上,使用上下文对象名称,有许多方式来覆盖这个行为,最简单的方式是在配置文件中增加一个名 字为上下文对象名称的数据库连接串,在我这里,叫做 MyDomainContext,还可以通过实现一个构造函数,然后调用非默认的基类构造函数来实现。
在下一篇,我将会演示如果覆盖这些约定。
- Entity Framework 4.1 推荐英文教程
- Entity Framework 4.1学习教程
- Entity Framework 教程
- Entity Framework 教程
- Entity Framework 教程
- Entity Framework 教程
- Entity Framework 教程
- [整理]Entity Framework 教程
- Entity Framework 教程
- Entity Framework 教程
- Entity Framework教程
- Entity Framework 教程
- Entity Framework 教程
- Entity Framework教程
- Entity Framework 全面教程详解
- Entity Framework 全面教程详解
- [hystar整理]Entity Framework 教程
- [hystar整理]Entity Framework 教程
- 参考文献的类型
- MongoDB入门
- 印度英语听力脚本
- 理想是你最大的隐私
- 嘘!千万别把你的计划告诉别人 “把目标展示给别人会让我们误以为自己已经踏上了成功的第一步。”
- Entity Framework 4.1 推荐英文教程
- Java中char是unicode 占几个字节呢?
- 2005年浙大研究生复试上机真题-畅通工程
- 设置打印首选项
- fastboot的使用方法
- 在vi中使用模式匹配
- 深入学习Tomcat----自己动手写服务器(附服务器源码)
- backslash-newline at end of file
- Ninject使用指南