O/R 设计器概述
对象关系设计器(O/R 设计器)提供了一个可视化设计图面,用于创建基于数据库中对象的 LINQ to SQL 实体类和关联(关系)。 换句话说,O/R 设计器用于在应用程序中创建映射到数据库中的对象的对象模型。 它还生成一个强类型 DataContext,用于在实体类与数据库之间发送和接收数据。 O/R 设计器还提供了相关功能,用于将存储过程和函数映射到 DataContext 方法以便返回数据和填充实体类。 最后,O/R 设计器提供了对实体类之间的继承关系进行设计的能力。
O/R 设计器生成在 LINQ to SQL 类和数据库对象之间提供映射的 .dbml 文件。 O/R 设计器还生成类型化的 DataContext 和实体类。
O/R 设计器的设计图面有两个不同的区域:左侧的实体窗格和右侧的方法窗格。 实体窗格是主设计图面,其中显示实体类、关联和继承层次结构。 方法窗格是显示映射到存储过程和函数的 DataContext 方法的设计图面。
提示
O/R 设计器当前仅支持 SQL Server 2000、SQL Server 2005、SQL Server 2008 和 SQL Server Express 数据库。 虽然 O/R 设计器不支持 SQL Server Compact 3.5,但 LINQ to SQL 支持。 有关更多信息,请参见 SQL Server Compact 3.5 与 LINQ to SQL。有关如何获取 SQL Server Express 的信息,请参见如何:安装示例数据库主题中的“获取 SQL Server Express”一节。
打开 O/R 设计器
通过在项目中添加新的**“LINQ to SQL 类”**项,可以打开 O/R 设计器。 有关详细信息,请参见如何:向项目中添加 LINQ to SQL 类(O/R 设计器)。
重要事项 |
---|
O/R 设计器是一个简单的对象关系映射器,因为它仅支持 1:1 映射关系。 换句话说,实体类与数据库表或视图之间只能具有 1:1 映射关系。 当前不支持复杂映射(例如,将实体类映射到联接表)。此外,该设计器还是一个单向代码生成器。 这表示代码文件中只反映对设计器图面所做的更改。 O/R 设计器中不会反映对代码文件的手动更改。在保存设计器并重新生成代码时,将覆盖在代码文件中手动进行的所有更改。 有关如何添加用户代码和扩展由 O/R 设计器生成的类的信息,请参见如何:扩展 O/R 设计器生成的代码。 |
创建和配置 DataContext
向项目中添加**“LINQ to SQL 类”**项并打开 O/R 设计器后,空设计图面表示一个可供配置的空 DataContext。 DataContext 是使用拖动到设计图面上的第一项所提供的连接信息进行配置的。 因此,DataContext 是使用放置到设计图面上的第一项中的连接信息进行配置的。 有关 DataContext 类的更多信息,请参见 DataContext 方法(O/R 设计器)。
创建映射到数据库表和视图的实体类
通过将数据库表和视图从**“服务器资源管理器”/“数据库资源管理器”**拖动到 O/R 设计器上,可以创建映射到表和视图的实体类。正如上一节中所述,DataContext 是使用拖动到设计图面上的第一项所提供的连接信息进行配置的。 如果将一个使用不同连接的后续项添加到 O/R 设计器中,您可以更改 DataContext 的连接。 有关更多信息,请参见如何:创建映射到表和视图的 LINQ to SQL 类(O/R 设计器)。
创建调用存储过程和函数的 DataContext 方法
可以通过将存储过程和函数从**“服务器资源管理器”/“数据库资源管理器”**拖动到 O/R 设计器上来创建调用(映射到)这些存储过程和函数的 DataContext 方法。 存储过程和函数作为 DataContext 的方法添加到 O/R 设计器中。
提示
将存储过程和函数从“服务器资源管理器”/“数据库资源管理器”拖动到 O/R 设计器上时,生成的 DataContext 方法的返回类型取决于项的放置位置。 有关更多信息,请参见 DataContext 方法(O/R 设计器)。
配置 DataContext 以使用存储过程来保存实体类和数据库之间的数据
如上文所述,您可以创建调用存储过程和函数的 DataContext 方法。 此外,您还可以分配执行插入、更新和删除操作的默认 LINQ to SQL 运行时行为可以使用的存储过程。 有关更多信息,请参见如何:指定存储过程以执行更新、插入和删除(O/R 设计器)。
继承和 O/R 设计器
像其他对象一样,LINQ to SQL 类也可以使用继承,并可从其他类派生。 在数据库中,可通过多种方法创建继承关系。 O/R 设计器支持通常在关系系统中实现的单表继承概念。 有关更多信息,请参见如何:使用 O/R 设计器配置继承。
LINQ to SQL 查询
由 O/R 设计器创建的实体类专供LINQ(语言集成查询) 使用。 有关更多信息,请参见如何:查询信息 (LINQ to SQL)。
将生成的 DataContext 和实体类代码分离到不同的命名空间
O/R 设计器为 DataContext 提供了**“上下文命名空间”和“实体命名空间”属性。 这些属性决定 DataContext 和实体类代码生成到哪个命名空间。 默认情况下,这些属性为空并且 DataContext 和实体类生成到应用程序的命名空间。 若要在除应用程序的命名空间以外的命名空间中生成代码,请在“上下文命名空间”和/或“实体命名空间”**属性中输入一个值。