У меня есть класс с 20 полями, которые заполняются из базы данных SQL при загрузке. В настоящее время я вызываю метод данных загрузки сразу после конструктора, который вызывает SQL proc и заполняет все необходимые поля. Время от времени я вообще не могу получить доступ к этим 20 полям, добавляя дополнительную стоимость вызова SQL, даже если это не требуется. Поэтому я изменил все свойства, чтобы иметь связанное личное свойство, и когда программа вызывает общедоступное свойство, сначала проверяю частное свойство, и если оно равно null, это означает, что нам нужно загрузить данные из sql, поэтому я вызываю метод загрузки. Он отлично работает, но когда я вижу код, повторяется шаблон нулевой проверки и загрузка SQL-запроса. Есть ли лучший способ сделать это?Как избежать частной собственности null проверить сделать ленивую загрузку?
private string _name;
public string Name
{
get {
if (_name == null)
LoadData(); //this popultes not just but all the properties
return _name;
}
}
Кажется, вы сделали один вызов базы данных по 20 вызовам, считаете ли вы, что это эффективно даже в среднем по вашему доступу, говорят только 6 - 8 значений – V4Vendetta
@ V4Vendetta Нет, он просто реализует ленивый шаблон загрузки. В его комментарии говорится, что он загружает все свойства при первом вызове свойства ANY.Затем проверка будет ложной при последующих вызовах и вернет только значения памяти –
Эй, вы также можете проверить один раз с помощью Constructor и привязать данные. –