[发明专利]批量操作有效
申请号: | 201110440114.4 | 申请日: | 2011-12-16 |
公开(公告)号: | CN102591933A | 公开(公告)日: | 2012-07-18 |
发明(设计)人: | H·J·M·梅杰 | 申请(专利权)人: | 微软公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 上海专利商标事务所有限公司 31100 | 代理人: | 高见 |
地址: | 美国华*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 批量 操作 | ||
技术领域
本发明涉及批量操作。
背景技术
数据处理是计算机编程的基本部分。可从各种编程语言中选择创建程序的编程语言。用于特定的应用程序的所选语言可取决于应用程序上下文、开发者的偏好、或公司策略,以及其他因素。无论所选语言如何,开发者最终将必须处理数据,即查询以及创建、更新和删除数据。
已开发称为语言集成查询(LINQ)的技术以便于从编程语言内查询或者换言之读取数据。LINQ提供方便且声明性简写查询句法以在编程语言(例如,...)内部允许对查询的指定。更具体而言,提供映射到较低层语言构造或原语的查询运算符,诸如方法和拉姆达表达式(lambda expression)。提供用于各种运算(例如,过滤、投影、连接、分组、排序……)族的查询运算符,并且查询运算符可包括但不限于映射到实现这些名称所表示的运算符的方法的“where”和“select”运算符。作为示例,用户可以以诸如“from n in numbers where n<10select n”的形式指定查询,其中“numbers”是数据源并且查询从数据源返回小于10的整数。此外,可以以各种方式组合查询运算符以生成任意复杂度的查询。
为了在编程语言内部执行创建、更新和删除操作,可利用LINQ的查询功能。更具体地,使用LINQ将在其上可执行创建、更新或删除操作的数据集合从持久数据存储(例如,数据的非易失性储存库)读取至存储器中。后续地,在存储器内表示上执行一个或多个操作并将变更推送回至持久数据存储。换言之,可跟踪对检索自数据库的实体的变更,并且当在数据库上调用“SubmitChanges()”或类似过程时,在底层数据结构(例如,表)上执行累积的变更。
发明内容
下面呈现了简化的发明内容,以便提供对所公开主题的某些方面的基本概念。本发明内容不是广泛性的概观。它并不旨在标识关键/重要元素,也不旨在划定所要求保护主题的范围。其唯一目的是以简化形式呈现一些概念,作为稍后呈现的更具体实施例的序言。
简言之,本发明一般涉及批量操作。可利用语言集成查询指定创建、读取、更新和删除操作。然而,例如,每一批量操作可与其他批量操作不同地来实现——与根据诸如读取操作之类的特定操作相反。此外,可将批量操作相关的功能可根据特定批量操作来约束,以防止或至少减少运行时错误。根据本发明的一个方面,批量操作可关于为操作(例如,IQuerable,IInsertable,IUpdatable,IDeletable)所特有的类型的专用集合来操作。此外,对集合的其他操作可基于集合类型来进行限制,包括但不限于用于定义集合的查询运算符。
为实现上述及相关目的,在此结合以下描述和附图描述了所要求保护主题的某些说明性方面。这些方面指示可实践本主题的各种方式,它们均落在所要求保护主题的范围之内。当结合附图阅读以下详细描述时,本发明的其他优点和新颖特征将变得显而易见。
附图说明
图1是便于与持久数据存储处交互的系统的框图。
图2是代表性LINQ批量操作的框图。
图3A-C图形化地示出创建、更新和删除操作。
图4是与持久数据存储交互的方法的流程图。
图5是编码批量操作的方法的流程图。
图6是验证批量操作的方法的流程图。
图7是示出用于本公开各方面的合适操作环境的示意性框图。
具体实施方式
以下细节大体针对包括在语言集成查询上下文中创建、更新和删除的批量操作。常规上,支持单个批量操作,即读取操作。可注入代码以利用读取操作来执行其他批量操作,例如,通过将数据从持久数据存储(例如,数据库)读取至存储器,允许对存储器内数据进行变更并将变更推送回持久数据存储。
然而,关于上述方法至少有两个问题。首先,尽管对于读取操作将数据加载至存储器是合乎需要的,但是对于其他批量操作,至少由于效率原因优选直接在持久数据存储上执行操作而不创建存储器内表示(例如,对象)。例如,考虑涉及一百万个记录的情形。此处,从持久数据存储加载一百万个记录、跟踪变更并将数据推送回持久数据存储将是非常低效的。其次,由读取查询标识的集合对于其他操作可能是不兼容的,由此导致运行时错误。例如,如果对多个表执行“Join(联合)”查询运算符,则删除操作将难以(如果不是不可能的话)执行,因为接收特定数据所针对的表是未知的。本发明解决了这些和其他问题。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软公司,未经微软公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110440114.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:用于分离生物流体的配套元件
- 下一篇:使用结构化数据管理网页链接