Си диез / Говнокод #9717 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
private IEnumerable<CharacteristicValue> GetCharacteristicValues(IQueryable<CharacteristicValue> allCharacteristicValues, int characteristicId)
{
      var characteristicValues = new CharacteristicValue[userIds.Length];

       for (var i = 0; i < userIds.Length; i++)
       {
           characteristicValues[i] = allCharacteristicValues.FirstOrDefault(cv => cv.UserId == userIds[i] && cv.CharacteristicId == characteristicId); // Todo: Try to replace with a single query.
       }

       return characteristicValues;
}

Драсьте, нашёл в коде такую вот какашку. Как видите параметр allCharacteristicsValues реализует интерфейс IQuarable из EF. То бишь каждый раз, когда будет вызываться метод FirstOrDefault будет делаться запрос к базе. В идеале это должно было бы выглядеть так:

var characteristicValues = allCharacteristicValues.Where(cv => cv.CharacteristicId == characteristicId && userIds.Contains(cv.UserId));

Но при такой реализации размер масива пользователей и значение может разниться:

Values:
val1
val2
val3

Users:
1
2
3
4
5

Для первого же варианта результат будет выглядеть так:
Values:
val1
val2
val3
null
null

Users:
1
2
3
4
5


Собственно всё )))) Надеюсь подсоветуете чего-нибудь хорошего ;)

Запостил: walash walash, (Updated )

Комментарии (21) RSS

  • Раздел C# на ГК - худшее место в Рунете искать помощи, дельного совета по C#. 24 из 25 посетителей не знают C# вообще, зато вони то!
    Ответить
    • Нужно начать с того, что ГК - вообще не то место, куда нужно обращаться за помощью. Вот Stackoverflow - правильное место.
      Ответить
      • похоже, пора вешать нагскрин с этим комментом и галочкой "я понял"
        Ответить
      • 1 из 25 и на стековерфловочке испытывает баттхёрт, кстати 🙂

        и не надо туда ракоту заманивать, и так средний уровень упал до печатающей обезьяны
        Ответить
      • >Вот Stackoverflow - правильное место.
        Неправильное. Для таких вопросов больше подойдут
        ответы Мейл.ру и виошечка гугля. Тем более они на русском.
        Ответить
    • > 24 из 25 посетителей не знают C# вообще
      Да чего так скромно-то? Говори четко, по делу и в лицо: все тут пидарасы, а ты один - д'Артаньян.
      Ответить
      • я не один, но я хотя бы шарп знаю. ни кресты ни пэху не знаю на столько чтобы, туда не хожу, гавном никого не обливаю, заметь
        Ответить
        • >24 из 25 посетителей
          >я не один
          Тут сидит не более 25 завсегдатаев (я и 20 насчитать не могу). Остальные - залетные. Согласно твоему утверждению только один человек на гкоде знает шарп.
          Получили противоречие. Q.E.D.
          Ответить
  • На говнокоде как-то подушевнее и человечнее, чем на стэке ))). Тут не жуют сопли, а сразу рубят правду матку 🙂

    Спасибо за снипет 😉 К сожалению, мне не помог 🙂
    Ответить
      • У меня там чуть посложнее дата модель, чем я привёл в примере. Как всегда реальность накладывает свой отпечаток на большинство проектных решений (
        Ответить
  • л.W.K(S)J,LW,L,E E.U"E:F$X!A.R Y,M,U(K!R D:W)G(M(GK?S!FU,A!F.F,Q)I,I$Y!Z(I"L!V!V"H.G$Q B!H:T,V$Y C O)K(U!F)D.K:Y!G?RK!B.I!SY(F"Y:J"X(N$R"U!X?K$ZL:S)L$Q.OНWYPKSJZKYSQWPWCVWVSWKEXITSDJFVZQOMXRVJVYDFQXTETPVBWGQHDGBKSUTZ
    Ответить

Добавить комментарий

Где здесь C++, guest?!

    А не использовать ли нам bbcode?


    8