Доменная служба Silverlight - удаление проверок - PullRequest
1 голос
/ 27 июня 2011

Как выполнить проверку ограничений с помощью Silverlight + Domain Service + EF

Table1 - это первичная таблица

Table1 - это FK в Table2

Мне нужно проверить, когдаудаляя таблицу Table1, в таблице Table2 нет записей, связанных с таблицей 1.

I в таблице Table2 есть записи, связанные, а затем выдается исключение.

возможно ли это?

1 Ответ

1 голос
/ 23 февраля 2012

В вашем DomainService просто добавьте проверочный атрибут в методе удаления,

[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");
        }
    }

наслаждайтесь!

...