数据库存储过程以及其简单扩展
1.数据库存储过程的优点:
1)执行速度更快-在数据库中保存的存储过程语句都是经过编译的
2)允许模块化设计-类似方法的复用
3)提高系统安全性-防止SQL注入
4)减少网络流通量-只要传输存储过程的名称
2.程序设计时,出于安全、效率和扩展性方面的考虑,我们把很多数据操作都封装为存储过程。
3.这一命令生成过程是如何实现的? Entity Framework 的要点是实体数据模型 (EDM),一个用于描述应用程序域对象的概念模型。 Entity Framework 让开发人员可以针对实体数据模型提出查询,而不必操心数据库的具体操作。 实体数据模型的实体以及实体之间的关系以 XML 形式定义,而开发人员基于该模型的实体来处理强类型化类。 Entity Framework 运行时使用实体数据模型的 XML 以及其他元数据(用于描述数据库架构以及从实体数据模型到数据库架构的映射关系)来沟通类与数据库。Entity Framework 运行时元数据用于生成数据库命令
在运行时,利用特定于数据库的 ADO.NET 提供程序,Entity Framework 将针对实体数据模型而创建的查询转换为存储查询(例如 T-SQL),然后送至数据库。 Entity Framework 将查询结果转换为由强类型化实体类所定义的对象,如图 2 所示。
在用户处理这些对象的时候,Entity Framework 利用标识键跟踪属性以及对象之间的关系所发生的更改。 最后,当代码调用 Entity Framework SaveChanges 方法,从而在数据库中永久保存更改时,Entity Framework 运行时会读取自己采集的所有更改跟踪信息。 对于每个修改、添加或删除的实体,Entity Framework 会再次读取模型,并让提供程序生成存储命令,然后在一次可逆事务中对数据库执行这些命令。
这一段关于 Entity Framework 默认行为的描述往往会让数据库所有者发疯,但在这里我想要强调“默认”这个词。 Entity Framework 有许多可以改变的默认行为。
Entity Framework 对于数据检索请求或数据保存请求的处理方式就是这样一个可以修改的行为。 您不必建立依赖于 Entity Framework 的模型便能访问您的数据表。 您可以建立一个只知道数据库视图与存储过程的模型,而不影响使用该模型的应用程序代码。 通过结合 Entity Framework 的存储过程支持与其数据库视图支持,您能够以存储过程和视图为基础实现所有数据库交互。