У меня действительно странная проблема.
У меня есть 3 таблицы.
- Позиции
- PositionAttachments
- Вложения
Я не буду утомлять вас ключами и внешними ключами, поскольку это должно быть довольно очевидно.
Если я добавлю новую позицию, вложение и позиционирование все хорошо.
Если я добавлю новое вложение в существующую запись позиции, я получу следующее.
- Таблица позиций обновлена, и я вижу изменения на экране
- В таблице вложений появилась новая запись
- В таблице PositionAttachments появилась новая запись
- Новое приложение не отображается на экране в моем приложении
- Закрыть приложение, перекомпилировать и запустить снова, и у меня так же, как 4
- Просмотр ЛЮБОЙ таблицы через SQL-сервер, и меня выгнали из сеанса, и как только я снова войду в систему, я вижу записи на экране.
Ни в коем случае не генерируется ошибка.
Обновить код записи;
public void AddAttachmentToPosition(PositionsAvailable positionModel, Attachment attachment)
{
//attachment.id = Guid.NewGuid();
dc.Attachments.InsertOnSubmit(attachment);
PositionAttachment positionAttachment = new PositionAttachment();
positionAttachment.PositionId = positionModel.PositionId;
positionAttachment.AttachmentId = attachment.id;
//positionAttachment.id = Guid.NewGuid();
dc.PositionAttachments.InsertOnSubmit(positionAttachment);
dc.SubmitChanges();
}
Редактировать
Я посмотрел журнал, созданный контекстом данных, и получил его для вставки PositionAttachments. Это выглядит практически одинаково для таблицы вложений.
DECLARE @output TABLE([id] UniqueIdentifier)
INSERT INTO [dbo].[PositionAttachments]([PositionId], [AttachmentId])
OUTPUT INSERTED.[id] INTO @output
VALUES (@p0, @p1)
SELECT [id] FROM @output
-- @p0: Input UniqueIdentifier (Size = 0; Prec = 0; Scale = 0) [92a3627d-ad01-466e-a315-423c851efc5d]
-- @p1: Input UniqueIdentifier (Size = 0; Prec = 0; Scale = 0) [db566728-a313-40c7-af82-0a2f147234eb]
-- Context: SqlProvider(Sql2008) Model: AttributedMetaModel Build: 3.5.30729.5420
На мой взгляд, это выглядит довольно нормально. И кроме того, тот же код работает, когда я добавляю новую Позицию, а не когда я добавляю вложения к существующей позиции.