Entity Framework 6 添加了对 DynamicData 和 EntityDataSource 控件的支持

  • 2014-02-11
  • 本文字数:787 字

    阅读完需:约 3 分钟

在 Entity Framework 6 中,微软除了用 Microsoft.AspNet.EntityDataSource 更新了模板之外,还添加了对 DynamicData EntityDataSource 控件的支持。DynamicData 包可用于使用 Entity Framework 6 创建的代码先行模型先行的项目,同时这些项目还必须安装了必要的包、实体和字段模板。

要使用DynamicData 控件,需要创建一个新的ASP.NET Dynamic Data 实体Web 应用程序,添加Microsoft.AspNet.DynamicData.EFProvider 的NuGet 包,这会添加对DynamicData EFProvider 二进制文件的引用,并安装所需的模板。

接着,使用EF 代码先行或设计器创建模型,然后在 Global.asax.cs 文件中添加如下代码,注册 Entity Framework 模型。


DefaultModel.RegisterContext(   
new Microsoft.AspNet.DynamicData.ModelProviders.EFDataModelProvider(()
=> newNorthwindEntities1()), 
   newContextConfiguration { ScaffoldAllTables = true });

另一方面,Microsoft.AspNet.EntityDataSource 包会安装运行时二进制文件和 Entity Framework 6 的 NuGet 包。还需要在 web.config 文件中添加如下所示的标签前缀:


<pages> 
<controls> 
<addtagPrefix="ef"assembly="Microsoft.AspNet.EntityDataSource" 
namespace="Microsoft.AspNet.EntityDataSource" /> 
</controls> 
</pages> 

最后,创建一个新的 Web 表单页,用下面的代码将 EntityDataSource 控件绑定到 GridView 或 FormView 上:


<ef:EntityDataSourceID="GridDataSource"runat="server"EnableDelete="true"/>

安装的模板将取代 Microsoft.AspNet.EntityDataSource 包中默认的 EntityDataSource 控件。它还解决了一些与多对多字段模板相关的问题。不过,Microsoft.AspNet.DynamicData.EFProvider 中的模板面向的是 C#和 Web Application 项目,不能用于 WebSites 项目。

原文英文链接: DynamicData and EntityDataSource Updated with Entity Framework 6 Support