Entity Framework Code-First CTP5 发布了

  • James Vastbinder
  • 张龙

2011 年 1 月 4 日

话题:.NETDevOps语言 & 开发架构文化 & 方法

近日,ADO.NET 团队发布了 Entity Framework Code-First Library CTP5。该程序库旨在为开发者提供一个以代码为中心的工作流用于处理数据。这也是微软在今年第一季度发布最终版前的最后一个 CTP 版。

凭借 Entity Framework Code-First CTP5,开发者可以:

  • 无需设计器就可以开发
  • 无需基类就可以通过编写类来定义模型对象
  • 无需显式配置任何内容就可以实现数据库的持久化

CTP5 中已知的问题

  • 需要对 Fluent API 中表与列的映射进行改进
  • 需要对 CTP5 早期预览版中可插拔的约定进行更多的测试
  • 只有使用 Code First 时才支持验证特性

从 CTP4 开始新增的内容

DbContext

  • 用于 DbContext/DbSet 的 T4 模板
  • 保存对象时的验证
  • 修改了 Tracker API
  • DbSet.Loca 公开了一个 ObservableCollection,用于表示 DbSet 的本地内容
  • 通过 iQueryable的 AsNoTracking 扩展方法支持 No-Tracking Queries
  • DbContext 配置
  • 原生的 SQL 查询 / 命令
  • 改进的并发冲突解决方式

Code First

  • 完全的数据注解支持
  • 改进的 Fluent API
    • 简化的表与列的映射
    • 可以忽略掉类与属性
  • 可插拔的约定——还需要进一步完善

从 CTP4 以来所发生的变化

  • 新的程序集名称——EntityFramework.dll
  • 为现有的数据库支持提供更好的 Code-First
  • DbContext.ObjectContext 被移走了——通过 ((IObjectContextAdapter)myContext).ObjectContext 获取上下文
  • 排除掉 EdmMetadata 表
  • 一些类的变更
    • System.Data.Entity.Database.DbDatabase
    • System.Data.Entity.Database.DropCreateDatabaselfModelChanges
    • System.Data.Entity.Database.DropCreateDatabaseAlways
    • System.Data.Entity.Database.CreateDatabaselfNotExists
    • System.Data.Entity.Database.SqlConnectionFactory
    • System.Data.Entity.Database.SqlCeConnectionFactory

喜欢在 Visual Studio 中通过 NuGet 来安装程序库的开发者们也可以在 SQL Azure 中这么做。从发布伊始,Morteza Manavi 就发布了一系列文章介绍如何使用 CTP5 实现继承映射和实体关联。

查看英文原文:Entity Framework Code-First CTP5

.NETDevOps语言 & 开发架构文化 & 方法