Простая выборка из базы данных с использованием класса Select c Guid'ом в предикате сравнения.
Коллеги, приветствую.
Есть некоторый простой бизнес- процесс, инициируемый событием- сигналом "Добавление записи в таблицу". При каждом добавлении записи я получаю ее уникальный идентификатор, например -
Я выполняю простой запрос из MS SQL Server Management Studio -
UsrInDebtId
FROM
UsrDebt
WHERE
Id='F6F4725A-C7C6-4AA2-BE50-E4878ACB7D4B';
Получаю какой- то результат.
Аналогично из кода C#
myConnection.Open();
SqlCommand myCommand = new SqlCommand("...", myConnection);
SqlDataReader myReader = myCommand.ExecuteReader();
while (myReader.Read()) {
...
}
...
Уникальный идентификатор я сохраняю в параметре addedRecordId -
Далее я хочу использовать класс Select из пространства имен Terrasoft.Core.DB -
Select select = (Select)new Select(userConnection)
.Column("UserInDebtId")
.From("UsrDebt").As("UD")
.Where("UD", "Id")
.IsEqual(addedRecordId); // строка 42
Как я могу использовать Guid в условии IsEqual?
Был бы весьма признателен за информацию.
Спасибо.
--
С уважением, Алексей Быков.
Нравится
Может быть, существует возможность получить строковое представление уникального идентификатора из события- сигнала и далее уже программно создать Guid, который и передать в предикат?..
Например:
string str = "F6F4725A-C7C6-4AA2-BE50-E4878ACB7D4B"; Guid guid = new Guid(str);
А затем уже:
... .IsEqual(guid);
Хотя и не совсем ясно, что бы это могло дать...
Алексей,
В этом случае можно решить задачу двумя способами:
Вариант 1.
.IsEqual(addedRecordId.ToString());
Вариант 2.
.IsEqual(Column.Parameter(addedRecordId));
Второй вариант более корректный.
Здравствуйте, Олег! Большое спасибо за ответ, попробую сегодня.
В обоих случаях получаю такую ошибку компиляции:
Cannot implicity convert type 'Terrasoft.Core.DB.Query' to 'Terrasoft.Core.DB.Select'. An explicit conversion exists (are you missing a cast?)
Нужно видеть всю картину, трудно так определить где зарыт камень.
Напишите в техническую поддержку.
Олег, спасибо.
Помогло использование переменной с неявным типом:
var selectQuery = new Select(userConnection) ...