Я выполняю этот запрос:
Код: Выделить всё
public static int GetOfflineDiscountCount(string discountHashId, string loyaltyCustomerId)
{
// Initialize the count variable
int discountCount = 0;
Console.WriteLine($"Customer ID: {loyaltyCustomerId}, Discount ID: {discountHashId}");
try
{
using (var dbContext = new XXXX(ConnectionStringHelper.posConnectionString))
{
var query = @"
SELECT COUNT(tsd.id) AS countAll
FROM XXXX.tmp_sale_discount tsd
JOIN XXXX.tmp_sale_items tsi ON tsi.id = tsd.sale_item_id
JOIN XXXX.tmp_sale ts ON ts.id = tsi.sale_id
WHERE ts.send_status != 1
AND ts.customer_id = @p0
AND tsd.discount_id = @p1";
// Execute the query with parameters
discountCount = dbContext.Database.SqlQuery(
query,
new Npgsql.NpgsqlParameter("@p0", loyaltyCustomerId), // Parameter for
customer_id
new Npgsql.NpgsqlParameter("@p1", discountHashId) // Parameter for
discount_id
).FirstOrDefault();
Console.WriteLine($"{discountCount}");
}
}
catch (Exception ex)
{
LogHelper.WriteException(ex);
}
// Return the final count
return discountCount;
}
Я убедился, что соединение с БД хорошее и работает так, как задумано. Я ЗАБЛОКИРОВАЛ соединение с облачным сервером, чтобы сохранить значения БД, которые я хотел использовать в качестве триггера, но это запускается только в локальной копии БД, а не в облачной версии.
В программе переменные для лояльностиCustomerId и DiscountHashID верны.
Не знаю, в чем я здесь не прав.
Подробнее здесь: https://stackoverflow.com/questions/793 ... e-database
Мобильная версия