|
|
|
Сортировка в Entity framework
|
|||
|---|---|---|---|
|
#18+
Всем привет! Есть две таблицы, связанные один ко многим. Я добавил их в модель средствами VS В коде я получаю экземпляр записи родительской таблицы, заполняю свойство-список дочерней и все это привязываю (Binding) в датагрид и прочие контролы в TwoWay режиме (используется wpf ). Это позволяет мне с минимумом кода и телодвижений иметь приложение для показа и редактирования данных. Но есть ложка дегтя. Сортировка. Сортировка записей дочерней таблицы по умолчанию меня не устраивает и она мне непонятна. Если я в ItemsSource отдаю список с методом MyList.OrderBy(...) то невозможно редактирование. Пытаюсь в модели написать Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. но программа ругается {"The ORDER BY clause is invalid in views, inline functions, derived tables, subqueries, and common table expressions, unless TOP or FOR XML is also specified."} Контрол, который я использую (DataGrid из WPFToolbox) не поддерживает сортировку при работе с Entity Model и Linq2Sql Подскажите как я могу выдать данные пользователю в нужном мне порядке при сохранении возможности редактирования! Заранее спасибо! С уважением, Пешков Евгений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2009, 15:12 |
|
||
|
Сортировка в Entity framework
|
|||
|---|---|---|---|
|
#18+
бекоз лик оборачивает всю вашу конструкцию в скобочки и заталкивает во фром...? он не такой умный? Зачем вам сдался ордер бай? указывайте через код порядок сортировки... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2009, 15:16 |
|
||
|
Сортировка в Entity framework
|
|||
|---|---|---|---|
|
#18+
Контролы WPF сами обеспечивают сортировку ICollectionView ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2009, 23:21 |
|
||
|
Сортировка в Entity framework
|
|||
|---|---|---|---|
|
#18+
SeVa, Как я понял таким образом я получу view без обратной связи? Мне надо получить данные в грид, отсортированные как надо, с возможностью редактирования. Как мне проще всего это сделать? buserуказывайте через код порядок сортировки... MyList.OrderBy(...) не работает так как мне надо. Или имелось ввиду что-то другое? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2009, 09:41 |
|
||
|
Сортировка в Entity framework
|
|||
|---|---|---|---|
|
#18+
При редактировании сортировку должен делать только контрол,в grid'e эта возможность есть. Почитай для начала документацию ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2009, 13:04 |
|
||
|
Сортировка в Entity framework
|
|||
|---|---|---|---|
|
#18+
авторКак я понял таким образом я получу view без обратной связи? И еще про ObservableCollection ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2009, 13:05 |
|
||
|
Сортировка в Entity framework
|
|||
|---|---|---|---|
|
#18+
SeVa, У Вас есть рабочий пример кода работы с ДатаГрид из WPFToolbox с сортировкой по нужному столбцу? Если есть, не могли бы Вы поделиться? С уважением, Пешков Евгений ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2009, 09:29 |
|
||
|
Сортировка в Entity framework
|
|||
|---|---|---|---|
|
#18+
Нашел нечто подобное тому, что мне надо http://blog.nicktown.info/2008/12/10/using-a-collectionviewsource-to-display-a-sorted-entitycollection.aspx Пока разбираюсь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2009, 09:43 |
|
||
|
Сортировка в Entity framework
|
|||
|---|---|---|---|
|
#18+
Вроде работает! Только почему-то один раз отрабатывает. Я из тривью выбираю элемент, на основе выбора получаю элемент из Entity Model private void TextBlock_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) { TextBlock tbStudinTV = (TextBlock)sender; Guid g = new Guid(tbStudinTV.Tag.ToString()); Student stud = (from student in dip.Student where student.ID_Student == g select student).First(); stud.StudDiscipline.Load(); base.DataContext = stud; } Когда я первый раз выбираю студента все дисциплины загружаются с сортировкой как надо. Но второй и последующие выборы выводят не сортированный список. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2009, 11:59 |
|
||
|
Сортировка в Entity framework
|
|||
|---|---|---|---|
|
#18+
Посмотрел ссылку,на мой взгляд, подход через одно место.Есть бесплатные гриды сторонних фирм,которые поддерживают сортировку без этих танцев с бубнами и дополнительными тормозами. Поскольку только начинаешь, перейди на Silverlight, судя по всему, он идет в МС с более высоким приоритетом, чем WPF(грид впервые появился в нем).В SL для EF есть RIA Service. Код,который ты привел в конце, выбрось и забудь.Binding WPF/SL позволяет полностью обходится без обработчиков клацанья мышкой.Примерный вариант возможного решения - MVVM ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2009, 17:42 |
|
||
|
Сортировка в Entity framework
|
|||
|---|---|---|---|
|
#18+
SeVa, То что лишний код, это конечно плохо и очень жаль, что дефолтный грид не поддерживает сортировку при работе с entity model. Будем надеяться, что ситуация исправиться, об этом баге известно. Насчет MVVM и клацанья мышкой. Что-то сразу об этом не подумал %). Остальное то все сделано именно через байдинги, а то что можно и DataContext передать - не сразу понял. Только теперь проблема с отложенной загрузкой - пока не заполняются гриды, остальные поля заполняются. огромное спасибо за помощь и советы! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2009, 09:03 |
|
||
|
Сортировка в Entity framework
|
|||
|---|---|---|---|
|
#18+
Только теперь проблема с отложенной загрузкой - пока не заполняются гриды, остальные поля заполняются. ] Обычно в этом случае: - в ViewModel или Model создают свойство IsBusy.Перед загрузкой его устанавливают в true, после - false - в View добавляют всплывающий/перекрывающий BusyControl(погугли готовые реализации),его свойство Collapsed связывают с IsBusy с помощью BooleanToVisibilityConverter ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2009, 13:39 |
|
||
|
Сортировка в Entity framework
|
|||
|---|---|---|---|
|
#18+
Я явно загружаю связанные списки в коде, ставлю брейкпоинт и вижу, что у связанных списков IsLoaded == true, но в ДатаГриде не вижу данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2009, 15:27 |
|
||
|
Сортировка в Entity framework
|
|||
|---|---|---|---|
|
#18+
Так бы сразу и сказал Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. CollectionViewModel поддерживает сортировку,группировку, фильтрацию Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. 233. 234. 235. 236. 237. 238. 239. 240. 241. 242. 243. 244. 245. 246. 247. 248. 249. 250. 251. 252. 253. 254. 255. 256. 257. 258. 259. 260. 261. 262. 263. 264. 265. 266. 267. 268. 269. 270. 271. 272. 273. 274. 275. 276. 277. 278. 279. 280. 281. 282. 283. 284. 285. 286. 287. 288. 289. 290. 291. 292. 293. 294. 295. 296. 297. 298. 299. 300. 301. 302. 303. 304. 305. 306. 307. 308. 309. 310. 311. 312. 313. 314. 315. 316. 317. 318. 319. 320. 321. 322. 323. 324. 325. 326. 327. 328. 329. 330. 331. 332. 333. 334. 335. 336. 337. 338. 339. 340. 341. 342. 343. 344. 345. 346. 347. 348. 349. 350. 351. 352. 353. 354. 355. 356. 357. 358. 359. 360. 361. 362. 363. 364. 365. 366. 367. 368. 369. 370. 371. 372. 373. 374. 375. 376. 377. 378. 379. 380. 381. 382. 383. 384. 385. 386. 387. 388. 389. 390. 391. 392. 393. 394. 395. 396. 397. 398. 399. 400. 401. 402. 403. 404. 405. 406. 407. 408. 409. 410. 411. 412. 413. 414. 415. 416. 417. 418. 419. 420. 421. 422. 423. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2009, 16:38 |
|
||
|
Сортировка в Entity framework
|
|||
|---|---|---|---|
|
#18+
Почти все заработало. Просто не там где надо указывал байдинг для датаконтекста, указывал в гриде, а надо было в Window. Но вернулась старая проблема - единоразовая сортировка. При клике по студенту первый раз - все датагриды заполняются отсортировано, второй и последущие клики на других и этом студенте выводят несортированные данные (можно руками кликнуть по заголовку и отсортировать). И я даже не знаю куда копать... Почему то, что работает один раз, не работает второй %) ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2009, 14:52 |
|
||
|
|

start [/forum/topic.php?fid=17&msg=36056181&tid=1351765]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
54ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 270ms |
| total: | 417ms |

| 0 / 0 |
