|
Как заставить Linq2Sql модифицировать записи по первичному ключу?
|
|||
---|---|---|---|
#18+
есть некий мэпинг-класс. В классе определены с десяток свойств разных типов, в том числе ID целочисленного типа. Для этих свойств определены атрибуты ColumnAttribute. Для свойства ID в атрибуте указано , что это IsPrimaryKey и IsDBGenerated! На стороне БД для колонки определено, что она IDENTITY, есть первичный ключ. Код: c# 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.
Получив через контекст данных существующие записи определенной таблицы, меняю пару значений у свойств объекта..вызываю сохранение. смотрю в профайлер СКЛ и ужасаюсь: при обновлении записи вместо условия по первичному ключу (WHERE [ID] = somevalue), используется все привязанные свойства! Код: sql 1. 2. 3.
Как так? У меня же есть первичный ключ, который по своей природе еще и индекс. Неужели это промах разработчиков или что-то не хватает в моём мэпинге? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2012, 17:18 |
|
Как заставить Linq2Sql модифицировать записи по первичному ключу?
|
|||
---|---|---|---|
#18+
не тот кусок из профайлера выдернул..ссори.. Код: sql 1. 2. 3.
просто количество изменяемых объектов может быть до тысячи и как бы, пологаясь на индекс, я расчитывал что обновление будет происходить оптимально быстро, но с такими условиями можно будет идти покурить при сохранении ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2012, 17:26 |
|
Как заставить Linq2Sql модифицировать записи по первичному ключу?
|
|||
---|---|---|---|
#18+
да и потом если запись была уже изменена кем-то другим, то апдейт вообще не отработается ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2012, 17:44 |
|
Как заставить Linq2Sql модифицировать записи по первичному ключу?
|
|||
---|---|---|---|
#18+
Нашёл решение. http://social.msdn.microsoft.com/forums/en-US/linqprojectgeneral/thread/cdadb0f5-39d8-4c29-99ca-160445b04b64/ ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2012, 12:11 |
|
|
start [/forum/topic.php?fid=17&fpage=29&tid=1350155]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
40ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
others: | 36ms |
total: | 179ms |
0 / 0 |