BLToolkit: Несколько наборов результатов?

Я не нашел способа получить два списка объектов из SP с двумя операторами выбора. Возможно ли это с помощью BLToolkit или таким образом можно извлекать только иерархические данные?

Я пытаюсь заменить набор данных, содержащий две несвязанные таблицы.


person Carl R    schedule 02.02.2011    source источник


Ответы (1)


Оказывается, это было очень просто. :)

Вот как можно вернуть несколько несвязанных наборов результатов с помощью BLToolkit.

List<Apple> apples = new List<Apple>();
List<Orange> oranges = new List<Orange>();

MapResultSet[] sets = new MapResultSet[2];
sets[0] = new MapResultSet(typeof(Apple), apples);
sets[1] = new MapResultSet(typeof(Orange), oranges); //Make sure both lists are added

//Skip adding relations

using (DbManager db = new DbManager())
{
    db
        .SetSpCommand("usp_Fruit_GetBySomething",
            db.Parameter("someParam", someParam))
        .ExecuteResultSet(sets);
}

foreach(Apple apple in apples)
{
  profit(apple);
}

foreach(Orange orange in oranges)
{
  profit(orange);
}
person Carl R    schedule 03.02.2011
comment
Ваши таблицы как-то связаны? У меня аналогичный сценарий, и я планирую получить несколько результатов из нескольких таблиц, содержащих сглаженный xml. Если они связаны, как вы делаете обновления. - person scope_creep; 29.06.2011
comment
@scope_creep В этом случае таблицы вообще не были связаны. - person Carl R; 30.06.2011
comment
@scope_creep Я делаю обновления, используя хранимые процедуры, по одному объекту за раз, при необходимости зацикливая. - person Carl R; 30.06.2011
comment
Спасибо, Карл Р. Именно так я и думал об этом, и приятно знать, что я смутно нахожусь на правильном пути. - person scope_creep; 04.07.2011