Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Validation Silverlight域服务-删除验证_Validation_Silverlight_Crud - Fatal编程技术网

Validation Silverlight域服务-删除验证

Validation Silverlight域服务-删除验证,validation,silverlight,crud,Validation,Silverlight,Crud,如何使用Silverlight+域服务+EF执行约束验证 表1是一个主表 表1是表2中的FK 我需要在删除表1时验证表2是否没有与表1相关的记录 I表2有相关记录,然后抛出异常 有可能吗?在您的DomainService中,只需在delete方法上添加一个验证属性即可 [CustomValidation(typeof(MyCustomValidator), "CustomDeleteTable1Validation")] public void DeleteTable1(Table1 table

如何使用Silverlight+域服务+EF执行约束验证

表1是一个主表

表1是表2中的FK

我需要在删除表1时验证表2是否没有与表1相关的记录

I表2有相关记录,然后抛出异常


有可能吗?

在您的DomainService中,只需在delete方法上添加一个验证属性即可

[CustomValidation(typeof(MyCustomValidator), "CustomDeleteTable1Validation")]
public void DeleteTable1(Table1 table1)
{
    //normal behavior
    if ((table1.EntityState != EntityState.Detached))
    {
        this.ObjectContext.ObjectStateManager.ChangeObjectState(table1, EntityState.Deleted);
    }
    else
    {
        this.ObjectContext.Table1s.Attach(table1);
        this.ObjectContext.Table1s.DeleteObject(table1);
    }
}
然后在验证方法中做任何你想做的事情

public static class MyCustomValidator
    {
        public static ValidationResult CustomDeleteTable1Validation(Table1 table1, ValidationContext context)
        {
            // check your values ...
            var isOk=true;
            // and ...
            if(isOk)
                 return ValidationResult.Success;
            else
                 return new ValidationResult(validationContext.DisplayName + " error");
        }
    }

享受吧

在您的DomainService中,只需在delete方法上添加一个验证属性

[CustomValidation(typeof(MyCustomValidator), "CustomDeleteTable1Validation")]
public void DeleteTable1(Table1 table1)
{
    //normal behavior
    if ((table1.EntityState != EntityState.Detached))
    {
        this.ObjectContext.ObjectStateManager.ChangeObjectState(table1, EntityState.Deleted);
    }
    else
    {
        this.ObjectContext.Table1s.Attach(table1);
        this.ObjectContext.Table1s.DeleteObject(table1);
    }
}
然后在验证方法中做任何你想做的事情

public static class MyCustomValidator
    {
        public static ValidationResult CustomDeleteTable1Validation(Table1 table1, ValidationContext context)
        {
            // check your values ...
            var isOk=true;
            // and ...
            if(isOk)
                 return ValidationResult.Success;
            else
                 return new ValidationResult(validationContext.DisplayName + " error");
        }
    }

享受吧

什么是备份数据存储?如果SQL Server您应该在数据库中设置约束,EF将考虑这些约束(或者,如果您没有更新EF,至少在违反服务器规则时引发异常)。什么是备份数据存储?如果使用SQL Server,则应在数据库中设置约束,EF将考虑这些约束(如果未更新EF,则在违反服务器规则时至少引发异常)。