2012-09-21 31 views
6

que he tratado de usar herramientas eléctricas Entidad Marcos de técnicas de ingeniería inversa Código Primero de una base de datos SQL Server y recibe el siguiente error:System.ArgumentException: El parámetro modelEntityContainerName contiene caracteres que no son válidos

System.ArgumentException: The modelEntityContainerName parameter 'testContext' contains characters that are not valid.
    at System.Data.Entity.Design.EntityModelSchemaGenerator..ctor(EntityContainer storeEntityContainer, String namespaceName, String modelEntityContainerName)
    at Microsoft.DbContextPackage.Handlers.ReverseEngineerCodeFirstHandler.ReverseEngineerCodeFirst(Project project)

¿Hay algo Puedo hacer para continuar o evitar este error o solucionarlo.

Gracias.

Respuesta

2

Tuve el mismo problema. Mi base de datos se llamaba sots-versión-005, y el código no escapaba al nombre. La respuesta es cambiar el nombre de la base de datos y, con un poco de suerte, se encuentra en un entorno de desarrollo donde es fácil hacerlo.

Utilicé SQL Management Studio, hice clic derecho en la base de datos y lo renombré como 'sots5', eliminando todos los caracteres excepto los alfanuméricos.

0

Actualmente estoy trabajando con VS 2013 y Entity framework versión 6.1.2 y encontré el mismo error.

me encontré con este post de ErikEJ en la Entidad sitio de marcos CodePlex: http://entityframework.codeplex.com/workitem/898#CommentContainer9

"@ Greg - Este problema no es fijo en Herramientas manuales, pero se fija en la versión 6.1 Herramientas (Código de Primera de base de datos) (acaba de probar con SQL Compact) "

Por lo tanto, actualmente PowerTools no se puede utilizar para esto. Sin embargo, Entity framework 6 sí lo admite. sólo tienes que seguir el flujo de trabajo descrito aquí en este video: http://msdn.microsoft.com/en-us/data/jj200620

se agrega el elemento modelo de datos de entidad para el proyecto y luego elegir la opción "Código de primera base de datos".

Tenga en cuenta que las clases generadas son un poco diferentes de lo que Power Tools habría creado. Power Tools solo usa Fluent API al configurar la base de datos. El asistente de EF, por otro lado, utiliza anotaciones de datos de forma predeterminada y utiliza la API de Fluent solo cuando es necesario. Sin embargo, también es posible cambiar los archivos de plantilla para que solo se use la API Fluent.

Cuestiones relacionadas