- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 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
Собственно всё )))) Надеюсь подсоветуете чего-нибудь хорошего ;)
SmackMyBitchUp 20.03.2012 09:07 # +1
abatishchev 20.03.2012 09:18 # −9
roman-kashitsyn 20.03.2012 09:20 # +9
abatishchev 20.03.2012 09:21 # 0
Lure Of Chaos 20.03.2012 10:46 # 0
bugmenot 21.03.2012 22:40 # +4
и не надо туда ракоту заманивать, и так средний уровень упал до печатающей обезьяны
3.14159265 22.03.2012 13:46 # +3
Неправильное. Для таких вопросов больше подойдут
ответы Мейл.ру и виошечка гугля. Тем более они на русском.
bugmenot 22.03.2012 19:10 # 0
absolut 23.03.2012 10:38 # +5
coder-andrew 18.04.2012 18:44 # 0
ничего не напоминает?
abatishchev 20.03.2012 09:22 # −2
http://stackoverflow.com/questions/525194/linq-inner-join-vs-left-join
abatishchev 20.03.2012 10:12 # 0
3.14159265 22.03.2012 13:42 # 0
Да чего так скромно-то? Говори четко, по делу и в лицо: все тут пидарасы, а ты один - д'Артаньян.
abatishchev 22.03.2012 13:44 # −1
3.14159265 22.03.2012 13:52 # 0
>я не один
Тут сидит не более 25 завсегдатаев (я и 20 насчитать не могу). Остальные - залетные. Согласно твоему утверждению только один человек на гкоде знает шарп.
Получили противоречие. Q.E.D.
abatishchev 22.03.2012 17:25 # −2
absolut 23.03.2012 10:39 # +2
walash 21.03.2012 22:04 # 0
Спасибо за снипет ;) К сожалению, мне не помог :)
abatishchev 21.03.2012 22:39 # −1
walash 02.04.2012 13:54 # 0
guest8 09.04.2019 12:51 # −999