Есть ли в сервис-стеке или в XML-сервисе возможность отмены или перекрестного применения? - PullRequest
0 голосов
/ 30 июня 2018

Я использую сервисный стек 4.5.14. Я хочу передать список Guid по такому запросу ниже.

Название таблицы: Изображение столбцы: (Id -> Type = Guid) (ImageId -> Type = Guid) (Guid -> Type = Guid)

var result = Db.ExecuteSql("select value from image unpivot (value for col in (Id, ImageId)) un where Guid=(@param) order by Guid", 
            new { param = "5de7f247-f590-479a-9c29-2e68a57e711c" });

Возвращает результат, в котором их Id и ImageId равны 000 .... в то время как они равны нулю.

Другой вопрос: Как я могу отправить список Guid в качестве параметра к вышеуказанному запросу?

любая помогает?

Спасибо.

1 Ответ

0 голосов
/ 30 июня 2018

Чтобы запросить параметризованное поле, вы должны включить Guid вместо строки, например:

var result = Db.ExecuteSql(
    @"select value from image unpivot (value for col in (Id, ImageId)) un 
       where Guid=(@param) order by Guid", 
    new { param = new Guid("5de7f247-f590-479a-9c29-2e68a57e711c") });

Если значения равны нулю, это, вероятно, маскирует ошибку, вы можете выдать ошибки с помощью:

OrmLiteConfig.ThrowOnError = true;

Или включить отладку Ведение журнала с помощью:

LogManager.LogFactory = new ConsoleLogFactory();

В v5 + вы также можете проверять команды SQL до того, как они будут выполнены с помощью:

OrmLiteConfig.BeforeExecFilter = dbCmd => Console.WriteLine(dbCmd.GetDebugString());
...