Esto se debe a la forma en que EF4 funciona con model-first.
Cuando crea por primera vez un modelo de modelo primero, está en un estado en el que el SSDL no existe. Puede arrastrar entidades, asociarlas, etc. y, sin embargo, si observa la SSDL en el archivo EDMX, verá que ninguna de las entidades tiene una tabla de almacenamiento asociada en la SSDL.
Eso cambia cuando hace clic en el Generate Database From Model
elemento del menú contextual. La parte confusa es que esta acción hace más que simplemente generar un script DDL. De hecho, cambia el archivo EDMX para incluir información SSDL. A partir de este punto, el archivo EDMX entrará en un estado en el que cada entidad del diseñador / CSDL debe mapearse a una entidad del SSDL. Si uno no se asigna, activará un error de tiempo de compilación:
No se ha especificado ninguna asignación para el siguiente EntitySet / AssociationSet - (EntityName)
Otro hecho interesante es que no es el tipo de error que impedirá la compilación. De hecho, generará la biblioteca de clases de salida. ¿No debería ser una advertencia o algo así?
Para evitar este error, todo lo que tiene que hacer después de insertar una nueva entidad es Generate Database From Model
volver a hacerlo . Eso actualizará el SSDL y corregirá las asignaciones.
EDITAR
Si no está utilizando el modelo primero y "actualiza desde la base de datos", también tendrá este error en el caso de que haya eliminado una tabla en DB Server. Esto se debe a que Entity Framework no eliminará automáticamente la entidad por usted. Elimine la entidad manualmente y el error desaparecerá.