冠军

导航

EF 4.3 发布

原文名称:EF 4.3 Released

原文地址:http://blogs.msdn.com/b/adonet/archive/2012/02/09/ef-4-3-released.aspx

EF 4.3 下载地址:http://nuget.org/packages/EntityFramework/

在过去的六个月中,我们发布了有关 Code First 迁移的一系列预览,今天,我们将迁移作为 EF4.3 的一部分进行完整的发布。

在 EF 4.2 与 4.3 之间的变化:

新的 Code First 迁移特性:

这是 EF 4.3 中主要的新特性,允许通过 Code First 创建的数据库可以与你的代码模型一起增量进化。

移除的 EdmMetadata 表:

如果你允许简单地运行程序来通过 Code First 创建数据库(即没有显式启用迁移),那么,就会获得作为迁移一部分特性的,数据库架构生成的好处。

修复了 GetDatabaseValues:

在早期版本中,如果你的 entity 和 context 没有定义在同一个命名空间中,这个方法调用就会失败,这个问题已经被修复,使用 GetDatabaseValues 不再需要定义在同一个命名空间下。

修复了对 DbSet 名字中 Unicode 字符的支持:

在早期版本中,当在一个名字中包含有 Unicode 字符的 DbSet 中进行查询的时候,会导致异常,这个问题已经被修复了。

在非公共属性上的数据标注问题:

默认情况下,Code First 不会包含私有的,保护的,或者 internal 的属性,即使在你的模型中手工包含的情况下。在早期的版本中使用 Fluent API 将会忽略这类成员上的任何数据标注。这个问题已经被修复,现在 Code First 将会处理在模型中手工定义的私有、保护、内部的成员了。

更多的配置设置:

我们在配置文件中提供了更多的 Code First 相关的设置,这可以使得你有能力从配置文件中设置默认的链接工厂,以及数据库的初始化器。你还可以指定构造这些对象的构造器参数,更多详细内容可以见  EF 4.3 Configuration File Settings 博客内容。

已知的问题

在 EF 4.3 发布以后的数周,我们将会发布一个 EF 4.3.1 的补丁来处理这些问题。

已知的 EF 4.3 的问题:

使用 MOQ 框架 mock DbContext 错误:

对这个问题,我们将在 4.3.1 发布中修复,详细内容见: this Stack Overflow question

TPC 映射

在访问数据库的时候导致 "Unknown Columnname" 异常。

不是所有硬编码列的数据类型都在数据库生成:

如果你使用列数据类型标注,或者 HasColumnType 这样的 Fluent API 方法来硬编码列的数据类型(比如:xml, money 等等),在创建数据库的时候,这些数据类型不会被使用,在 EF 4.3.1 发布中会包含修复。

 

posted on 2012-02-14 22:58  冠军  阅读(2818)  评论(2编辑  收藏  举报