Я использую EF 4 STE для моделирования объекта Attachment. Вложение содержит имя, описание, дату и, самое главное, данные (byte[]
). Чтобы оптимизировать загрузку, я не хочу извлекать свойство Data до тех пор, пока это не станет абсолютно необходимым, т.е. Когда пользователь нажимает Download
на клиенте.
В попытке следовать этому подходу я использовал метод разбиения таблиц, описанный здесь. Я разделил таблицу Вложения на Вложение (Имя, Описание, Дата) и Вложения > (Данные). Это соотношение 1 к 1 в моей модели EF. Все работает отлично, пока я не попытаюсь удалить Приложение без AttachmentDatastrong > (т.е. attachment.AttachmentData == null
). Я получаю следующее исключение:
Неверные данные. Необходимые отношения отсутствуют. Изучите StateEntries, чтобы определить источник нарушения ограничения.
Я видел подобное сообщение, но я не могу заставить его работать с STE и расширением ApplyChanges
.
Сейчас мой код доступа к данным прост: я вызываю контекст ApplyChanges()
, а затем SaveChanges()
.
Я пробовал простую функцию удаления SQL и сопоставлял ее с обеими сущностями и фактически работал; однако он сломал вставку. Кажется, я не могу сопоставить функцию вставки для всех свойств для обоих объектов.
Любые идеи по некоторым другим параметрам, которые я могу попробовать? Могут ли отношения между Attachment и AttachmentData быть дополнительными? Когда я делаю это от 1 до 0+, я получаю ошибку отображения, говорящую, что Their primary keys may collide
.
Откройте все предложения.
Спасибо!