Atraso de carregamento campos caras v.1 Entity Framework

votos
4

Depois de caça em torno da rede, e pensando que eu venha com a solução, eu parecem ter atingido uma outra parede de tijolos.

Eu tenho uma tabela no meu banco de dados: Fotos; contendo colunas para PhotoID, Caption, Encomenda, e quatro conjuntos de dados binários: Original, grande, médio e pequeno (sim, foi baseado no antigo starter kit ASP.NET com várias correções, etc).

Eu estou no processo de mudança de L2S para Entity Framework para algumas das vantagens que aparecem para chegar com isso - então eu não precisam mais passar por uma propriedade PhotosTags para obter a lista de marcas associadas a uma foto, por exemplo, mas Eu estou procurando uma maneira de atrasar o carregamento do dados binários - na maioria das vezes, eu só preciso de legenda, tag, e ID, e eu, em seguida, entregar estes para outra área para obter os dados binários quando um usuário realmente vê a imagem .

Eu tomei um olhar para as seguintes mensagens:

  1. Como dividir uma tabela de dados?
  2. “Splitting Table”: Mapeamento de vários tipos de entidade para a mesma tabela.
  3. Capítulo 7: Entity Framework Guia de Aprendizagem (7.1 Delay carregamento de campos caros)

E acabei com um mapeamento Entity parecido com isto:

Diagrama Entidade http://www.doodle.co.uk//UserFiles/Image/EF-LazyLoad.png

E, de acordo com os links acima, eu modifiquei o arquivo edmx para incluir o seguinte restrição referencial:

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

O modelo valida, mas não construir - devido a um problema com o Tag mapeamento eu penso:

Erro 3019: Problema no mapeamento de fragmentos a partir de linhas 871, 892: mapeamento incorrecto de colunas principais compostas. restrição de chave estrangeira 'FK_siteContent_TagsPhotos_siteContent_Photos' de siteContent_TagsPhotos mesa (PhotoID) para siteContent_Photos mesa (PhotoID): Colunas (PhotoID) em siteContent_TagsPhotos tabela são mapeadas para propriedades (Photoid) em siteContent_TagsPhotos e colunas (PhotoID) em siteContent_Photos tabela são mapeadas para propriedades (PhotoID) em PhotosPhotoDetails. A fim das colunas através das mapeamentos não é preservada.

A relação de fotos até marcas é através de uma tabela de ligação, colunas Photoid, TagID.

Alguém já conseguiu obter qualquer dessas recomendações, ou algo semelhante, para trabalhar com o Entity Framework no .NET 3.5 SP1 com uma estrutura de dados como este? Ou você pode apontar as limitações de minha GoogleFU?

Eu sei que tudo isso vai ser muito mais fácil no .NET 4, mas isso não é aqui, e ele provavelmente será um tempo depois de ser lançado que meu anfitrião começa a oferecer para instalá-lo em algum lugar.

Obrigado.

Publicado 26/08/2009 em 22:55
fonte usuário
Em outras línguas...                            


1 respostas

votos
2

Eu acertei o mesmo problema e enquanto eu não ter encontrado uma solução para 3.5SP1 eu fiz confirmar que este erro vai embora com a EF 4.0.

Na verdade, uma solução potencial para você seria usar um campo diferente para a chave primária na sua entidade PhotoDetails.

Respondeu 04/09/2009 em 06:02
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more