Создание дозвукового динамического запроса с многочисленными предложениями where

У меня есть следующий код базового класса.

        MyApp.MyDB = new MyApp.MyDB ();
        IRepository<T> repo = new SubSonicRepository<T>(db);
        CurrentTable = repo.GetTable();



        var s = db.SelectColumns(columnList.ToArray()).
                From(CurrentTable.Name).
                OrderAsc(CurrentTable.Descriptor.Name);

Идея в том, что все мои классы могут вызывать этот метод.

Я только что понял, что мне может понадобиться инструкция «где», и может быть множество имен и значений столбцов для проверки.

Какой лучший подход для этого?

ОБНОВЛЕНИЕ: я обнаружил, что это работает ниже, но это лучшая практика?

//WhereClause is a Dictionary<string, string>
        int count = 0;
        foreach (var whereitem in WhereClause)
        {
            if (count == 0)
            {
                s.Where(whereitem.Key).IsEqualTo(whereitem.Value);
            }

            else
            {
                s.And(whereitem.Key).IsEqualTo(whereitem.Value);
            }

            count++;
        }

person Jon    schedule 04.02.2010    source источник


Ответы (1)


Это немного упрощает логику: для предложения where сделайте что-то вроде этого:

s.Where(1).IsEqualTo(1);

Для всех остальных объектов where вы можете использовать And.

person sparks    schedule 04.02.2010