如何:手动配置实体框架项目
如果在 Visual Studio 项目中使用 实体数据模型 向导,该向导将自动生成实体数据模型 (EDM) 并将该项目配置为使用 实体框架。有关更多信息,请参见如何:使用实体数据模型向导(实体框架)。也可以手动将 Visual Studio 项目配置为使用 实体框架。如果手动或使用 EDM 生成器 (EdmGen.exe) 实用工具定义了 EDM,则需要这样做。
本主题中的示例使用 AdventureWorks 销售模型的模型和映射文件。AdventureWorks 销售模型将在 实体框架 文档的与任务相关的所有主题中使用。
将 Visual Studio 项目配置为使用 AdventureWorks 销售模型
在**“解决方案资源管理器”中,将程序集引用添加到“System.Data.Entity.dll”和“System.Runtime.Serialization.dll”**中。
将以下 EDM 映射文件添加到该项目中:
AdventureWorks.csdl
AdventureWorks.msl
AdventureWorks.ssdl
有关创建这些文件的信息,请参见如何:手动定义实体数据模型(实体框架)。
选中刚添加到项目目录中的三个文件。在**“项目”菜单上,单击“包括在项目中”**。
选中添加到项目目录中的三个文件。在**“项目”菜单上,单击“属性”**。
在“属性”窗格中,将**“复制到输出目录”设置为“如果较新则复制”**。
打开项目的应用程序配置文件 (App.config) 并添加以下连接字符串:
<connectionStrings> <add name="AdventureWorksEntities" connectionString="metadata=.\AdventureWorks.csdl|.\AdventureWorks.ssdl|.\AdventureWorks.msl; provider=System.Data.SqlClient;provider connection string='Data Source=localhost; Initial Catalog=AdventureWorks;Integrated Security=True;Connection Timeout=60; multipleactiveresultsets=true'" providerName="System.Data.EntityClient" /> <add name="NorthwindEntities" connectionString="metadata=.\Northwind.csdl|.\Northwind.ssdl.\Northwind.msl; provider=System.Data.SqlClient;provider connection string='Data Source=localhost; Initial Catalog=Northwind;Integrated Security=True;MultipleActiveResultSets=True'" providerName="System.Data.EntityClient" /> </connectionStrings>
如果项目没有应用程序配置文件,可以通过从**“项目”菜单中选择“添加新项”,选择“常规”类别,接着选择“应用程序配置文件”,然后单击“添加”**,以添加应用程序配置文件。
在项目目录中的命令提示符下,针对项目运行适当的命令(删除换行符):
对于 C#:
"%windir%\Microsoft.NET\Framework\v3.5\edmgen.exe" /mode:EntityClassGeneration /incsdl:.\AdventureWorks.csdl /outobjectlayer:.\AdventureWorks.Objects.cs /language:CSharp
对于 Visual Basic:
"%windir%\Microsoft.NET\Framework\v3.5\edmgen.exe" /mode:EntityClassGeneration /incsdl:.\AdventureWorks.csdl /outobjectlayer:.\AdventureWorks.Objects.vb /language:VB
这将在 C# 或 Visual Basic 中生成一个基于概念模型的对象层文件。
将在上一步中生成的对象层文件添加到项目中。
在应用程序的代码页中,添加以下 using 语句(在 Visual Basic 中为 Imports):
Imports System Imports System.Linq Imports System.Collections.Generic Imports System.Text Imports System.Data Imports System.Data.Common Imports System.Data.Objects Imports System.Data.Objects.DataClasses ' Prepend with the root namespace for the project. Imports AdventureWorksModel
using System; using System.Linq; using System.Collections.Generic; using System.Text; using System.Data; using System.Data.Common; using System.Data.Objects; using System.Data.Objects.DataClasses; using AdventureWorksModel;