Isso está me deixando louco, e o erro não tem sentido para mim:
Não foi possível atualizar o EntitySet 'TableB' porque ele possui um DefiningQuery e nenhum elemento existe no elemento para oferecer suporte à operação atual.
Minhas tabelas são colocadas assim:
TabelaA int idA (identidade, chave primária) ... Tabela B int idA (FK para TableA.idA) int val
TabelaB não possui chave primária definida no servidor SQL. O Entity Framework importou a tabela e a associação e definiu os dois campos como chave. Mas ele emitirá esse erro quando tento fazer uma inserção na tabela!
O que há de errado??
Edit: Como sugerido por Alex, a solução foi esta:
- Clique com o botão direito do mouse no arquivo edmx, selecione Abrir com, editor XML
- Localize a entidade no elemento edmx: StorageModels
- Remova completamente o DefiningQuery
- Renomeie o armazenamento: Schema = "dbo" para Schema = "dbo" (caso contrário, o código gerará um erro dizendo que o nome é inválido)
- Remova a propriedade store: Name
Deixei a chave como estava, pois não havia problema em mim que as duas colunas fizessem parte da chave.