如何:添加定义查询(实体框架)
1个回答
展开全部
使用定义查询可以执行在 .edmx 文件的 DefiningQuery 元素中指定的 SQL 语句。 有关更多信息,请参见 DefiningQuery Element (EntitiContainer SSDL)。 定义查询通常用于提供类似于数据库视图(但该视图是在 .edmx 文件中定义的,而不是在数据库中定义)所提供的功能。 概念实体类型用于显示由概念层中的定义查询公开的数据。 注意: 运行 模型更新向导时,将覆盖对存储模型所做的所有更改(包括定义查询)。 无法将参数化查询作为定义查询执行。 默认情况下,使用定义查询显示的数据为只读数据。 但是,可以通过将显示数据的实体类型的插入、更新和删除函数映射到存储过程来更新数据。 有关更多信息,请参见 如何:将修改函数映射到存储过程(实体数据模型工具)和 演练:将一个实体映射到存储过程(实体数据模型工具)。 下面的过程高度概括向 .edmx 文件添加定义查询和概念实体类型的信息。 后面的示例提供了有关这些过程中各个步骤的更多详细信息。 这些过程假定在 Visual Studio 中已打开有效的 .edmx 文件。 添加定义查询 添加定义查询 向.edmx 文件的 SSDL 部分添加 EntitySet 元素。 仅指定 EntitySet 元素的 Name 和EntityType 属性。 有关更多信息,请参见 EntitySet Element (EntityContainer SSDL)。 向新添加的 EntitySet 元素添加一个 DefiningQuery 元素。 指定要在 DefiningQuery 元素的正文中执行的 SQL 语句。 有关更多信息,请参见 DefiningQuery Element (EntitiContainer SSDL)。 向.edmx 文件的 SSDL 部分添加 EntityType 元素。 此EntityType 元素必须描述 DefiningQuery 元素中的 SQL 语句返回的列。 有关更多信息,请参见 EntityType Element (SSDL)。 向概念模型添加实体类型 添加概念实体类型 向.edmx 文件的 CSDL 部分添加 EntitySet 元素。 有关更多信息,请参见 EntitySet Element (EntityContainer CSDL)。 向.edmx 文件的 CSDL 部分添加 EntityType 元素。 Name 属性应与上一步中 EntitySet 元素的 Name 属性具有相同的值。 实体类型的属性应映射到上述过程的 DefiningQuery 元素中指定的 SQL 语句返回的数据。 有关更多信息,请参见 EntityType Element (CSDL)。 映射概念实体类型和存储实体类型 映射概念实体类型和存储实体类型 向.edmx 文件的映射部分添加一个 EntitySetMapping 元素,该元素在前面两个过程中映射概念实体和存储实体。 有关更多信息,请参见 EntitySetMapping Element (MSL) 和 Mapping a Conceptual Model to a Storage Schema。 示例 下面的示例向 School.edmx 文件添加一个定义查询,以便使用 GradeReport 实体类型显示有关学生成绩的信息。 按照实体框架 Quickstart的 生成School 实体数据模型主题中的步骤可以生成 School.edmx 文件。 若要添加定义查询,必须首先向 .edmx 文件的 SSDL 部分添加 EntitySet 元素(其中包含 DefiningQuery 元素)。 注意下列事项: 仅指定了 EntitySet 元素的 Name 和EntityType 属性。 EntityType 属性中使用了实体类型的完全限定名。 在DefiningQuery 元素中指定了要执行的 SQL 语句。 SELECT CourseID, Grade, FirstName, LastName FROM StudentGrade JOIN (SELECT * FROM Person WHERE EnrollmentDate IS NOT NULL) AS p ON StudentID = p.PersonID 然后,向 .edmx 文件的 SSDL 部分添加下列 EntityType 元素。 。 注意下列事项: Name 属性的值对应于上述 EntitySet 元素中的 EntityType 属性的值,尽管在 EntityType 属性中使用了实体类型的完全限定名。 属性名称对应于上述 DefiningQuery 元素中的 SQL 语句返回的列名称。 在此示例中,实体键由三个属性组成以确保唯一键值。 若要向概念模型中添加实体类型,必须首先在 .edmx 文件的 CSDL 部分中添加下列 EntitySet 元素。 请注意,在 EntityType 属性中使用了实体类型的完全限定名。 然后,向 .edmx 文件的 CSDL 部分添加下列 EntityType 元素。 注意下列事项: Name 属性的值对应于上述 EntitySet 元素中的 EntityType 属性的值,尽管在 EntityType 属性中使用了实体类型的完全限定名。 属性名称对应于上述 DefiningQuery 元素中的 SQL 语句返回的列名称。 在此示例中,实体键由三个属性组成以确保唯一键值。
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询