Entity Framework Tabela dividida Excluir
Estou usando EF 4 STE's para modelar um objeto Attachment. OAnex contém um nome, descrição, data e, mais importante, dados byte[]
). Para otimizar o carregamento, não quero recuperar a propriedade Data até que seja absolutamente necessário, ou seja, quando o usuário clicar emDownload
do cliente.
Em um esforço para seguir essa abordagem, usei a técnica de divisão de tabelas descritaaqu. Eu quebrei meuAnex tabela emAnex (Nome, Descrição, Data) e AttachmentData (Dados). É uma relação de 1 para 1 no meu modelo EF. Tudo funciona muito bem até eu tentar excluir umAnex sem o AttachmentData (ou seja,attachment.AttachmentData == null
). Recebo a seguinte exceção:
ados inválidos encontrados. Um relacionamento necessário está ausente. Examine StateEntries para determinar a origem da violação de restriçã
Eu vi umsimilar post, mas não consigo fazê-lo funcionar com os STE's e osApplyChanges
método de extensão.
gora, meu código de acesso a dados é simples: chamo @ de contexApplyChanges()
Seguido porSaveChanges()
.
Eu tentei uma função SQL de exclusão simples e mapeei para ambas as entidades e que realmente funcionou; no entanto, quebrou a inserção. Não consigo mapear uma função de inserção para todas as propriedades para ambas as entidade
Alguma idéia de algumas outras opções que posso tentar? O relacionamento entre Attachment e AttachmentData pode ser opcional? Quando chego de 1 a 0 ou mais, recebo um erro de mapeamento dizendo queTheir primary keys may collide
.
Abra todas as sugestões.
Obrigado