发布网友 发布时间:2023-06-27 03:10
共1个回答
热心网友 时间:2023-10-05 10:26
实体框架生成一个从ObjectContext派生的类,该类表示概念模型中的实体容器。(该派生类的名称即是概念模型文件中的EntityContainer的名称。)该类公开SaveChanges方法,该方法触发对基础数据库的更新。这些更新操作可以使用系统自动生成的SQL语句(默认),也可以使用开发人员所指定的存储过程。无论是否使用存储过程来更新数据库,用于创建、更新和删除实体的应用程序代码都是一样的。注意:如果没有将实体类型的插入、更新或删除这三种操作全部映射到存储过程,则在运行时执行的情况下未映射的操作将失败且会引发UpdateException。下面的过程假定您已在实体设计器中打开一个.edmx文件。将插入操作映射到存储过程将插入操作映射到存储过程在实体设计器图面上或在“模型浏览器”窗口中,右击要映射插入操作的实体类型,然后选择“存储过程映射”。此时将出现“映射详细信息”窗口的“将实体映射到函数”视图。单击“”。在下拉列表中选择插入操作要映射到的存储过程。窗口中填充的是实体属性与存储过程参数之间的默认映射。通过单击相应属性字段并从下拉列表中选择适当属性,修改每个存储过程参数对应的映射。注意:所有实体键都必须具有映射。如果存储过程使用INSERT语句,则实体键通常映射到插入新行时创建的主键。下面几个步骤介绍如何将存储过程返回的数据映射到实体属性。单击“”。该字段即变为可编辑状态。键入包含存储过程返回的数据的参数名称。单击对应于参数名称的属性字段。该字段将变成一个下拉属性列表。选择返回的数据要映射到的属性。注意:对于整数值输出参数,“受影响的行数参数”复选框处于启用状态。如果在调用插入操作时针对某参数选中该复选框且返回的值为零,将引发OptimisticConcurrencyException。对每个返回值和未映射属性重复步骤5到8。现在,所选实体类型的插入操作已映射到存储过程。将更新操作映射到存储过程将更新操作映射到存储过程在实体设计器图面上或在“模型浏览器”窗口中,右击要映射插入操作的实体类型,然后选择“存储过程映射”。此时将出现“映射详细信息”窗口的“将实体映射到函数”视图。单击“”。在下拉列表中选择更新操作要映射到的存储过程。窗口中填充的是实体属性与存储过程参数之间的默认映射。通过单击相应属性字段并从下拉列表中选择适当属性,修改每个存储过程参数对应的映射。对于每个属性,都可以选中在“使用原始值”[UseOriginalValue]列中的复选框。通过“使用原始值”[UseOriginalValue]选项,可以使用并发控制。如果选中某个属性的“使用原始值”[UseOriginalValue]选项,则从数据库读取的该属性的值将传递给指定的存储过程参数。请注意,属性的原始值和当前值都可以传递给不同的参数。注意:映射更新操作时,可以将存储过程返回的数据映射到实体属性。下面几个步骤介绍如何将存储过程返回的数据映射到实体属性。单击“”。该字段即变为可编辑状态。键入包含存储过程返回的数据的参数名称。单击对应于参数名称的属性字段。在下拉列表中选择返回的数据要映射到的属性。注意:对于整数值输出参数,“受影响的行数参数”复选框处于启用状态。如果在调用更新操作时针对某参数选中该复选框且返回的值为零,将引发OptimisticConcurrencyException。可以选择对每个返回值重复步骤6到9。现在,所选实体类型的更新操作已映射到存储过程。将删除操作映射到存储过程将删除操作映射到存储过程在实体设计器图面上或在“模型浏览器”窗口中,右击要映射插入操作的实体类型,然后选择“存储过程映射”。此时将出现“映射详细信息”窗口的“将实体映射到函数”视图。单击“”。在下拉列表中选择删除操作要映射到的存储过程。窗口中填充的是实体属性与存储过程参数之间的默认映射。通过单击相应属性字段并从下拉列表中选择适当属性,修改每个存储过程参数对应的映射。注意:必须将关联映射到存储过程参数。在属性下拉列表中,可以选择关联。注意:对于整数值输出参数,“受影响的行数参数”复选框处于启用状态。另请参见任务演练:将一个实体映射到存储过程(实体数据模型工具)追问能不能讲的言简意赅点,我看不懂这些专业名词你qq多少咱慢慢讨论一下如何????