Здраво,
Пробав да испрограмирам нешто со LINQ и наидов на проблемот со Update на комплексни објекти од LINQ.
Комплексниот објект претставува Document во кој се содржат повеќе Stavki како child објекти.
Значи, исчитувам одреден објект ModifiedDocument, му правам промени и потоа го враќам променет во база.
Овој објект ModDocument потекнува од друг DataContext, а го додавам во новокреиран DataContext со:
Datacontext.Attach(ModDocument,true) ' true покажува дека документот е модифициран.
Кога ќе ја извршам оваа линија ми се јавува грешката:
Cannot add an entity with a key that is already in use.
Во што може да биде проблемот?
Пробај да го атачираш на конкретна табела/ентитет т.е. наместо:
Datacontext.Attach(ModDocument,true)
пробај:
Datacontext.Documents.Attach(ModDocument,true)
во случајот Documents или како и да ти се вика табелата каде што го додаваш новиот запис...
There is no substitute for good architecture and design, as well as honed development skills.
Да, всушност така и ми е:
По се изгледа ова е проблем само кога немаш никаков RowVersion механизам. Пробај да ставиш timestamp колона во табелите и се би требало да биде ок. Во спротивно можеш да ја надополниш Partial класата од маперот со сопствен механизам.