如何:处理数据事件
通过编写在某些事件发生时运行的代码,您可以自定义您的应用程序。例如,您可以编写在创建、访问、修改或删除表中的数据行时运行的代码。您也可以编写代码以验证用户是否有修改数据源的权限。
您可以处理的事件,可分为六个类别:
创建、删除或修改数据时使用的一般方法。
创建、删除或修改数据时使用的访问控制方法。
查询数据源时使用的查询方法。
保存数据源以便使用的数据源方法。
修改属性时使用的属性方法。
这些方法的介绍参见本主题末尾的表。
处理与数据相关的事件
在**“解决方案资源管理器”**中,双击实体或表格。
在**“数据设计器”**中打开实体或表格。
在**“数据设计器”中的命令栏上,单击“编写代码”**按钮旁边的箭头,然后选择要重写的方法。下表显示可由您的应用程序处理的方法。
说明 如果在“数据设计器”中选择了属性,则“属性方法”将只会出现在“编写代码”下拉列表。
“代码编辑器”将打开。
将光标放在刚创建的方法中,键入要在事件发生时运行的代码。
与数据相关的事件的列表
下表列出了可以由您的应用程序处理的数据事件:
一般方法 |
说明 |
---|---|
<TableName>_AllowSaveWithErrors |
指示在项存在验证错误时是否应保存它。默认情况下,如果项目存在验证错误,保存将中止。在调用层上运行。 |
<TableName>_Created |
在创建项后调用。在创建项的层上运行。 |
<TableSetName>_Deleted |
在从数据存储区中删除项后立即调用。在服务器上运行。 |
<TableSetName>_Deleting |
在从数据存储区中删除项前立即调用。在服务器上运行。 |
<TableSetName>_Inserted |
在向数据存储区中插入项后立即调用。在服务器上运行。 |
<TableSetName>_Inserting |
在向数据存储区中插入项前立即调用。在服务器上运行。 |
<TableSetName>_Updated |
在数据存储区中更新项后立即调用。在服务器上运行。 |
<TableSetName>_Updating |
在数据存储区中更新项前立即调用。在服务器上运行。 |
<TableSetName>_Validate |
在服务器上验证项时调用。 |
访问控制方法 |
说明 |
---|---|
SaveChanges_CanExecute |
调用之前,保存数据源中的更改以检查当前用户的权限级别。在服务器上运行。 |
<TableSetName>_CanDelete |
调用之前,删除项目以检查当前用户的权限级别。在服务器上运行。 |
<TableSetName>_CanInsert |
调用之前,插入项目以检查当前用户的权限级别。在服务器上运行。 |
<TableSetName>_CanRead |
调用之前,读取项目以检查当前用户的权限级别。在服务器上运行。 |
<TableSetName>_CanUpdate |
调用之前,更新项目以检查当前用户的权限级别。在服务器上运行。 |
查询方法 |
说明 |
---|---|
Query_ExecuteFailed |
该查询无法执行时调用。在服务器上运行。 |
执行的查询 |
仅在执行查询后调用。如果查询不能执行,则不会调用此方法。在服务器上运行。 |
查询正在执行 |
仅在执行查询前调用。在服务器上运行。 |
<TableSetName>_Filter |
该查询运行之前调用,允许其他查询自定义。在服务器上运行。 |
数据源方法 |
说明 |
---|---|
SaveChanges_ExecuteFailed |
仅在无法保存数据源时调用。在服务器上运行。 |
SaveChanges_Executed |
在成功地将更改保存到数据源后立即调用。在服务器上运行。 |
SaveChanges_Executing |
在数据源中保存更改前立即调用。在服务器上运行。 |
属性方法 |
|
---|---|
<PropertyName>_Changed |
在项的属性值发生更改后立即调用。在属性发生更改的层上运行。 |
<PropertyName>_IsReadOnly |
返回表示属性是否为只读的值。在访问该属性的层上运行。 |
<PropertyName>_Validate |
在验证属性时调用。在验证属性的层上运行。 |