Member 14683862 Ответов: 2

Как правильно работать с базой данных?


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

С уважением

Что я уже пробовал:

LblSrc.Text = src;

               List<Piska> allPiskaot = Blm.BLSrcCustomers(src);

баррель-
public static List<Piska> BLSrcCustomers(string src)
       {
           List<Piska> EntityList = new List<Piska>();
           List<Piskaot> DBList = DAlManager.GetSrcPiska(src);
           foreach (var item in DBList)
           {
               EntityList.Add(ConvertPiskaDbToPiskaEntity(item));
           }
           return EntityList;
       }



       public static Piska ConvertPiskaDbToPiskaEntity(Piskaot piska)
       {
           return new Piska
           {
               Id = piska.Id,
               Tags = piska.Tags,
               PTitle = piska.Ptitle,
               Tohen = piska.Tohen,
               Edited = piska.edited,
               Book = piska.book,
               Chapter = piska.chapter
           };
       }


далматинец-
public static List<Piskaot> GetSrcPiska(string src)
{
    using (var context = new DBNafshenuEntities())
    {
        var result = context.Piskaot.ToList();
        List<Piskaot> returnList = new List<Piskaot>();
        foreach (var item in result)
        {

            if (item.Tohen.Contains(src))
            {

                returnList.Add(item);
            }

        }
        return returnList;
    }
}

PIEBALDconsult

Я вижу ряд проблем.
Применение .ToList ()-это красный флаг для меня, но более важно то, что вы, похоже, получаете полный список элементов данных, преобразуете их все в объекты, а затем фильтруете их-в идеале фильтрация должна выполняться внутри базы данных.

Member 14683862

Не могли бы вы рассказать мне, как написать код, который может работать непосредственно с базой данных?

2 Ответов

Рейтинг:
9

Richard Deeming

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

ДАЛМАТИНЕЦ:

public static List<Piskaot> GetSrcPiska(string src)
{
    using (var context = new DBNafshenuEntities())
    {
        return context.Piskaot.Where(item => item.Tohen.Contains(src)).ToList();
    }
}


Рейтинг:
0

#realJSOP

“Правильнее” - понятие относительное. вы должны ожидать, что сможете писать лучший код, пока не напишете гораздо больше кода для начинающих. Если ваш код соответствует заявленным требованиям и работает без ошибок, это нормально.


Member 14683862

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

#realJSOP

Ну, похоже, вы используете EntityFramework, так что я не могу комментировать, потому что отказываюсь его использовать. Я думал, что он десериализовал данные в сущности для вас, но я могу ошибаться...

Member 14683862

Если вы используете SQL, я хочу знать, как добавить SQL-код в VISUALSTUDIO-

Строка connectionString = WebConfigurationManager.ConnectionStrings["DBNafshenuConnectionString"].Метод toString();
Проверьте новое окно инструментов();


используя (sqlconnection для подключения = новое sqlconnection(connectionString и))
{
соединение.Открыть();
используя (sqlcommand, который commandPodesavanje = новая команда sqlcommand("выбрать * из пользователей", подключения))
{
SqlDataReader reader = commandPodesavanje.Метода executereader();
в то время как (читатель.читать())
{

}
читатель.Закрывать();
}
}