HDI: набор свойств ограничения для класса Linq-To-Sql - PullRequest
0 голосов
/ 04 мая 2011

Как ограничить установщик свойств в классе Linq-To-Sql

У меня есть настраиваемое поле, которое требует проверки, и класс конструктора может быть перезаписан.

У меня есть методы установки переопределения, которые будут работать, но как я могу ограничить настройку класса Linq-To-Sql?

public partial class Frequency : INotifyPropertyChanging, INotifyPropertyChanged
{
    public void SetStartTime(TimeSpan startTime)
    {
        if(startTime.Days > 0){throw new Exception("No day value is valid for start time value";}
        this._StartTime = string.Format("{0}:hh\\:mm\\:ss", startTime);
    }
    public TimeSpan GetStartTime()
    {
        IEnumerable<int> startTime = this._StartTime.Split(':').Cast<int>();
        return new TimeSpan(startTime.ElementAt<int>(0), startTime.ElementAt<int>(1), startTime.ElementAt<int>(2));
    }
}

1 Ответ

1 голос
/ 05 мая 2011

LINQ 2 SQL имеет все необходимое для решения этой проблемы, если вы используете конструктор классов LINQ to SQL.

Допустим, в вашей таблице есть столбец «Число» типа Int32. Дизайнер создаст:

Поле -> _Number

Недвижимость -> Номер

Метод -> OnNumberChanging (int value)

Метод -> OnNumberChanged ()

Последние 2 метода являются частичными. Это означает, что вам не нужно прикасаться к сгенерированным дизайнером файлам, если вы обновляете свои классы из базы данных.

Создав в другом файле следующее:

public partial class MyLinqToSqlClass
{
    partial void OnNumberChanging(int value)
    {
        //your code here
        //throw exception if necessary when validating
    }
}

вы получаете то, что вам нужно.

Этот фрагмент кода вызывается внутри метода set свойства Number непосредственно перед изменением значения поля.

Таким образом, вы не будете беспокоиться об использовании метода set свойства.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...