Realizar una consulta con LINQ to entities

var query_actualizar = from x in ctx.banner
			let orden = ctx.banner.Where(y.id_banner == id_banner).First(y=> y.orden)
			where x.orden > orden
			select x;


foreach (banner ord in query_actualizar)
{
   ord.orden = ord.orden - 1;
}

Buen día quisiera hacer una consulta en LINQ: SQL=>Update BANNER set ORDEN = ORDEN - 1 where ORDEN > (select ORDEN from BANNER where ID_BANNER = 18)

Al realizar la consulta me sale este error:introducir la descripción de la imagen aquí

0
задан 19.12.2016, 16:31
5 ответов

Проблема с твоей первоначальной консультацией состоит в том, что First то, что он ждет, является условным, которое выполнял бы реестр, который ты хочешь возвратить. Есть несколько выборов сделать то, что ты просишь, одна:

var query_actualizar = from x in ctx.banner
        let orden = ctx.banner.First(y=> y.id_banner == id_banner).orden
        where x.orden > orden
        select x;

Другая

var query_actualizar = from x in ctx.banner
        let orden = ctx.banner.Where(y.id_banner == id_banner).Select(y=>y.orden).FirstOrDefault();
        where x.orden > orden
        select x;

Прямо сейчас я не могу тестировать это, но верю в то, что любая из двух ты deberГ, - чтобы функционировать. Если это не так, прокомментируй мне это.

2
ответ дан 24.11.2019, 11:59

Издал с новостью informaciГіn

Доказательство используя mГ©todo FirstOrDefault, чтобы получать первый элемент последовательности, которая истекает с нею condiciГіn:

var query_actualizar = from x in ctx.banner
            let orden = ctx.banner.FirstOrDefault(y => y.id_banner == id_banner).orden
            where x.orden > orden
            select x;
1
ответ дан 24.11.2019, 11:59

introducir la descripción de la imagen aquí Привет, Santiaguito, я попытался ты cГіdigo, и у меня вышла следующая ошибка, enviГі изображение, пожалуйста какая-то идея как исправлять это?, спасибо

0
ответ дан 24.11.2019, 11:59
  • 1
    Я обновил мой ответ. Я надеюсь, что оно ты функционирует сейчас. – santiaguito 19.12.2016, 19:14

Holas Pikoh и Santiaguito, вышел у меня с этим cГіdigo, Спасибо!.

var query_actualizar = from x in ctx.banner
        let orden = ctx.banner.First(y=> y.id_banner == id_banner).orden
        where x.orden > orden
        select x;
0
ответ дан 24.11.2019, 11:59

Я думаю, что было бы подходящим первый оценивать, если результат консультации с firstordefault отличается недействительного, перед тем, как призывать Where. Внутри ассемблирования ее librerГ - в. Покажи:

    // Exceptions:
    //   System.ArgumentNullException:
    //     source or predicate is null.
0
ответ дан 24.11.2019, 11:59