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