|
Linq выдает исключение об ошибочном ключе хранения поля
|
|||
---|---|---|---|
#18+
Здравствуйте! Есть старая БД на Server 2008R, сейчас пытаюсь писать утилиту с использованием Linq для загрузки в одну из её таблиц данных. Таблица БД: Код: sql 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.
В приложении создал следующею сущность: Код: 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. 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. 424. 425. 426. 427. 428. 429. 430. 431. 432. 433. 434. 435. 436. 437. 438. 439.
Создаю строку подключения: Код: c# 1. 2. 3. 4.
Потом создаю подключение и пытаюсь выгрузить: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
На строке Код: c# 1.
выдает исключение авторSystem.InvalidOperationException: Ошибочный ключ хранения: "ID" для члена "UploadKonteinerInINGEO.Entity.ContainerPlatform.IDCont". в System.Data.Linq.Mapping.AttributedMetaDataMember..ctor(AttributedMetaType metaType, MemberInfo mi, Int32 ordinal) в System.Data.Linq.Mapping.AttributedMetaType.InitDataMembers() в System.Data.Linq.Mapping.AttributedMetaType..ctor(MetaModel model, MetaTable table, Type type, MetaType inheritanceRoot) в System.Data.Linq.Mapping.AttributedRootType..ctor(AttributedMetaModel model, AttributedMetaTable table, Type type) в System.Data.Linq.Mapping.AttributedMetaTable..ctor(AttributedMetaModel model, TableAttribute attr, Type rowType) в System.Data.Linq.Mapping.AttributedMetaModel.GetTableNoLocks(Type rowType) в System.Data.Linq.Mapping.AttributedMetaModel.GetTable(Type rowType) в System.Data.Linq.DataContext.GetTable[TEntity]() Не пойму, что ему не нравится? Поле "ID" в БД действительно varchar PK, не знаю почему так - БД очень старая (больше 15 лет). Вот какой код генерит SQL Server на эту таблицу: Код: sql 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.
Модератор: Простыни убираем под спойлер ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2020, 12:52 |
|
Linq выдает исключение об ошибочном ключе хранения поля
|
|||
---|---|---|---|
#18+
Vlad__i__mir для загрузки в одну из её таблиц данных. Я не помню точно, но ключ вроде может быть и стрингом, но надо как-то сообщить EF, каким образом будет возникать новый ключ при вставке данных. Либо тогда не говорить ему, что это IsPrimaryKey, так как пока никаких внешних ключей я в этом коде не наблюдаю. P.S. Версию EF не хочешь сообщить? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2020, 13:24 |
|
Linq выдает исключение об ошибочном ключе хранения поля
|
|||
---|---|---|---|
#18+
Shocker.Pro Vlad__i__mir для загрузки в одну из её таблиц данных. Я не помню точно, но ключ вроде может быть и стрингом, но надо как-то сообщить EF, каким образом будет возникать новый ключ при вставке данных. Либо тогда не говорить ему, что это IsPrimaryKey, так как пока никаких внешних ключей я в этом коде не наблюдаю. P.S. Версию EF не хочешь сообщить? EF не использовал, использовал using System.Data.Linq; using System.Data.Linq.Mapping; Делал как описано в оф доках https://docs.microsoft.com/ru-ru/dotnet/framework/data/adonet/sql/linq/walkthrough-simple-object-model-and-query-csharp Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2020, 13:45 |
|
Linq выдает исключение об ошибочном ключе хранения поля
|
|||
---|---|---|---|
#18+
Shocker.Pro, авторЛибо тогда не говорить ему, что это IsPrimaryKey, так как пока никаких внешних ключей я в этом коде не наблюдаю. Попробовал, сделал вот так: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
ошибка осталась ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2020, 13:48 |
|
Linq выдает исключение об ошибочном ключе хранения поля
|
|||
---|---|---|---|
#18+
Vlad__i__mir EF не использовал, использовал using System.Data.Linq; Откуда ты этот ад выкопал? Его захоронили больше 10 лет назад. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2020, 13:51 |
|
Linq выдает исключение об ошибочном ключе хранения поля
|
|||
---|---|---|---|
#18+
fkthat, Google выдал ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2020, 13:52 |
|
Linq выдает исключение об ошибочном ключе хранения поля
|
|||
---|---|---|---|
#18+
fkthat Откуда ты этот ад выкопал? Его захоронили больше 10 лет назад. Vlad__i__mir ошибка осталась А вообще, лучше определись для начала, что именно ты хочешь, ради чего решил использовать ORM в конкретном случае? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2020, 14:03 |
|
Linq выдает исключение об ошибочном ключе хранения поля
|
|||
---|---|---|---|
#18+
Shocker.Pro fkthat Откуда ты этот ад выкопал? Его захоронили больше 10 лет назад. Vlad__i__mir ошибка осталась А вообще, лучше определись для начала, что именно ты хочешь, ради чего решил использовать ORM в конкретном случае? Попробовал переименовать - не помогло: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2020, 14:13 |
|
Linq выдает исключение об ошибочном ключе хранения поля
|
|||
---|---|---|---|
#18+
Vlad__i__mir Попробовал переименовать - не помогло: ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2020, 14:26 |
|
Linq выдает исключение об ошибочном ключе хранения поля
|
|||
---|---|---|---|
#18+
Shocker.Pro Vlad__i__mir Попробовал переименовать - не помогло: Да ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2020, 14:44 |
|
Linq выдает исключение об ошибочном ключе хранения поля
|
|||
---|---|---|---|
#18+
Shocker.Pro Статья, на которую сослался ТС - 2017 года. Хм. Посмотрел, и вправду. Но, про Владимира Ильича тоже статьи до сих пор пишут, а он уже почти сто лет как в мавзолее заспиртованный лежит. Подумал, может мне тоже тряхнуть стариной, освежить в памяти прежниескиллы и запилить статью про FoxPro 6.0 ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2020, 15:18 |
|
Linq выдает исключение об ошибочном ключе хранения поля
|
|||
---|---|---|---|
#18+
Vlad__i__mir Shocker.Pro пропущено... то есть он пишет " Ошибочный ключ хранения: "_Cont"? Да ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2020, 15:34 |
|
Linq выдает исключение об ошибочном ключе хранения поля
|
|||
---|---|---|---|
#18+
fkthat Подумал, может мне тоже тряхнуть стариной, освежить в памяти прежниескиллы и запилить статью про FoxPro 6.0 Поиск программиста Clarion: *** Условия: Оформление по ТК. Белая заработная плата от 67000 до 82000 на руки. Льготное питание. Скидки на туры Место работы: Химки. XXX: Если готовы платить 200 тыс. в месяц на руки, готов вспомнить и ездить в Химки. За 150 на руки готов вспомнить и работать удаленно YYY: 300 тыс. в месяц на руки, готов научиться и ездить в Химки. ZZZ: 400.000 net, Готов: 1. Разобраться с Clarion, 2. Переписать ваш вашу чудо-систему на Java 3. Переехать в Химки 4. Интегрироваться в химкинское общество, переняв местную культуру и обычаи. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2020, 15:36 |
|
Linq выдает исключение об ошибочном ключе хранения поля
|
|||
---|---|---|---|
#18+
Shocker.Pro Vlad__i__mir пропущено... Да Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2020, 15:43 |
|
Linq выдает исключение об ошибочном ключе хранения поля
|
|||
---|---|---|---|
#18+
Shocker.Pro fkthat Подумал, может мне тоже тряхнуть стариной, освежить в памяти прежниескиллы и запилить статью про FoxPro 6.0 Поиск программиста Clarion: *** Условия: Оформление по ТК. Белая заработная плата от 67000 до 82000 на руки. Льготное питание. Скидки на туры Место работы: Химки. XXX: Если готовы платить 200 тыс. в месяц на руки, готов вспомнить и ездить в Химки. За 150 на руки готов вспомнить и работать удаленно YYY: 300 тыс. в месяц на руки, готов научиться и ездить в Химки. ZZZ: 400.000 net, Готов: 1. Разобраться с Clarion, 2. Переписать ваш вашу чудо-систему на Java 3. Переехать в Химки 4. Интегрироваться в химкинское общество, переняв местную культуру и обычаи. )) У меня все намного намного (в разы) скромнее и легаси код 15-ти летней давности (SOAP), исходников которого нет, т.к. писала сторонняя фирма, с которой уже как 10 лет расторгнут договор на поддержку ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2020, 15:59 |
|
Linq выдает исключение об ошибочном ключе хранения поля
|
|||
---|---|---|---|
#18+
зачем весь этот секс с загрузкой данных в таблицы через linq и прочее, когда есть SqlBulkCopy, который может супер быстро загружать данный в таблички, при этом можно параллелить импорт данных по таблицам. при больших объёмах данных у этого способа конкурентов нет, имхо ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2020, 13:32 |
|
|
start [/forum/topic.php?fid=17&tid=1349046]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
28ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
others: | 22ms |
total: | 156ms |
0 / 0 |