Запрос в БД (MS SQL)

Добрый день!

Делаю веб-сервис на C#.

Данный запрос в консоли MS SQL работает:

SELECT SUM(UsrCost)
FROM UsrTouristOffer, UsrTours
WHERE UsrTouristOffer.UsrCode = '0001'
AND UsrTouristOffer.Id = UsrTours.UsrToursDetailId
AND UsrTours.UsrTourStateId = '916A6514-987E-4240-9E6A-46EB5DA1D21A';

Подскажите как сделать запрос из веб-сервиса в базу данных?

Нравится

7 комментариев
Лучший ответ

Pavel Litvinovich,

тут есть пример

    var select = new Select(UserConnection)
            .Column("Contact", "Id").As("ContactId")
            .Column("Contact", "Name").As("ContactName")
            .Column("Account", "Id").As("AccountId")
            .Column("Account", "Name").As("AccountName")
        .From("Contact")
        .Join(JoinType.Inner, "Account")
            .On("Contact", "Id").IsEqual("Account", "PrimaryContactId")
         as Select;

 

Данный запрос с использованием класса Select или EntitySchemaQuery. подробнее и с примерами тут

Алексей Следь,

Это SQL запрос. Мне надо получить результат, а данные которые мне необходимы находятся в двух разных таблицах.

Представьте запрос в другом виде и используйте класс Select или EntitySchemaQuery

SELECT SUM(UsrCost)
FROM UsrTouristOffer uo
Inner join UsrTours ut on uo.Id = ut.UsrToursDetailId
WHERE ou.UsrCode = '0001'
AND ut.UsrTourStateId = '916A6514-987E-4240-9E6A-46EB5DA1D21A';

или вариант CustomQuery

Алексей Следь,

Спасибо! Пробую.

Алексей Следь,

Подскажите, не могу нигде найти пример.

Необходимо запрос, который нормально работает в MS SQL, переписать для Исходного кода на C#:

SELECT SUM(UsrCost)
FROM UsrTours
INNER JOIN UsrTouristOffer ON UsrTours.UsrToursInDetailId = UsrTouristOffer.Id
WHERE UsrTouristOffer.UsrCode = 'AAA'
AND UsrTourStateId = '123456789';.

 

(Чтобы получилось на подобии такого запроса:

Select selectChec = new Select(UserConnection)
                .Column(Func.Count("Id"))
                .From("UsrTouristOffer")
                .Where("UsrCode").IsEqual(Column.Parameter(tourCode)) as Select;
            resultChec = selectChec.ExecuteScalar<decimal>();

)

Pavel Litvinovich,

тут есть пример

    var select = new Select(UserConnection)
            .Column("Contact", "Id").As("ContactId")
            .Column("Contact", "Name").As("ContactName")
            .Column("Account", "Id").As("AccountId")
            .Column("Account", "Name").As("AccountName")
        .From("Contact")
        .Join(JoinType.Inner, "Account")
            .On("Contact", "Id").IsEqual("Account", "PrimaryContactId")
         as Select;

 

Алексей Следь,

Спасибо огромное!

Показать все комментарии