Задержка загрузки дорогих полей в Entity Framework v.1 - PullRequest
4 голосов
/ 27 августа 2009

После охоты вокруг сети и, подумав, что я придумаю решение, я, похоже, ударил другую кирпичную стену.

В моей базе данных есть таблица: Фотографии; содержит столбцы для PhotoID, подписи, порядка и четырех наборов двоичных данных: исходные, большие, средние и маленькие (да, он основан на старом начальном наборе ASP.NET с различными исправлениями и т. д.).

Я нахожусь в процессе перехода от L2S к Entity Framework для получения некоторых преимуществ, которые я получаю благодаря этому, поэтому мне больше не нужно просматривать свойство PhotosTags, чтобы получить список тегов, прикрепленных к фотографии для например, но я ищу способ отсрочить загрузку двоичных данных - в большинстве случаев мне нужны только заголовок, тег и идентификатор, и затем я передаю их в другую область, чтобы получить двоичные данные, когда пользователь на самом деле просматривает изображение.

Я посмотрел на следующие сообщения:

  1. Как разбить таблицу данных?
  2. «Разделение таблицы»: отображение нескольких типов объектов в одну таблицу.
  3. Глава 7 из: Руководство по обучению Entity Framework (7.1. Задержка загрузки дорогих полей)

И я закончил с Entity Mapping, похожим на это:

Entity Diagram

И, согласно ссылкам выше, я изменил файл edmx, добавив в него следующее Ссылочное ограничение:

<ReferentialConstraint>
  <Principal Role="Photos">
    <PropertyRef Name="PhotoID" />
  </Principal>
  <Dependent Role="PhotoDetails">
    <PropertyRef Name="PhotoID" />
  </Dependent>
</ReferentialConstraint>

Модель проверяет, но не строит - из-за проблемы с отображением тегов, я думаю:

Ошибка 3019: проблема в отображении фрагментов, начинающихся со строк 871, 892: неправильное отображение столбцов составного ключа. Ограничение внешнего ключа 'FK_siteContent_TagsPhotos_siteContent_Photos' от таблицы siteContent_TagsPhotos (PhotoID) к таблице siteContent_Photos (PhotoID): столбцы (PhotoID) в таблице siteContent_TagsPhotos сопоставляются свойствам (PhotoID) в siteContent_TagsPhotos и столбцам (PhotoID) в фотографии (в PhotoID) на сайте (PhotoID) в таблице. в PhotosPhotoDetails. Порядок столбцов через сопоставления не сохраняется.

Связь между фотографиями и тегами осуществляется через таблицу ссылок, столбцы PhotoID, TagID.

Кому-нибудь удалось получить эти рекомендации или что-то подобное для работы с Entity Framework в .NET 3.5 SP1 с такой структурой данных? Или вы можете указать на ограничения моего GoogleFU?

Я знаю, что все это будет намного проще в .NET 4, но его здесь нет, и, возможно, через некоторое время после его выпуска мой хост начнет предлагать его установить где-то.

Спасибо.

1 Ответ

2 голосов
/ 04 сентября 2009

Я столкнулся с той же проблемой, и хотя я не нашел решения для 3.5SP1, я подтвердил, что эта ошибка исчезла с EF 4.0.

На самом деле потенциальным обходным путем для вас может быть использование другого поля для первичного ключа в вашей сущности PhotoDetails.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...