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