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

  • Anand Narayanaswamy
  • 姚琪琳

2014 年 2 月 11 日

话题:语言 & 开发

在 Entity Framework 6 中,微软除了用 Microsoft.AspNet.EntityDataSource 更新了模板之外,还添加了对DynamicDataEntityDataSource控件的支持。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

语言 & 开发