bb682
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору DevExpress 2010.2, XAF, нужно синхронизировать данные из одной базы в другую. Создаю unitofwork, устанавливаю connStr, соединяю, записываю, commit, всё ок. private bool TransferData(string connStr) { UnitOfWork uow = new UnitOfWork(); uow.ConnectionString = connStr; uow.Connect(); Item ItemFromCurrSession = ((ObjectSpace)View.ObjectSpace).Session.FindObject<Item>(Item.Fields.No == "ITEM13"); CloneHelper ch = new CloneHelper(((ObjectSpace)View.ObjectSpace).Session, uow); Item NewItem = ch.CloneWithKey(ItemFromCurrSession) as Item; NewItem.No_ = ItemFromCurrSession.No_; ObjectSpace os = new ObjectSpace(uow); using (os) { Item it = new Item(os.Session); it = NewItem; it.ItemCategoryCode.Code = ItemFromCurrSession.ItemCategoryCode.Code; it.Save(); os.CommitChanges(); } return true; } Если обьект состоит из других обьектов (persistent object), при commit получаю ошибку - исключение 'System.Data.SqlClient.SqlException: Violation of PRIMARY KEY constraint 'Item Category$0'. Cannot insert duplicate key in object 'dbo.Item Category'. Естественно такая категория уже есть в базе. Под дебагером вижу, что присваивается не NULL,а корректная категория. |