2010-06-19 16 views
8

Estoy intentando crear un modelo de Entity Framework 4 basado en una base de datos heredada de SQL Server 2008. Como el modelo se va a publicar en un servicio web, necesito omitir una columna entera llamada NewsletterSubscribed de una de las entidades del modelo.Marco de entidad: ¿Se debe correlacionar la columna aunque tenga un valor predeterminado?

Después de la eliminación de la columna en el diseñador de EF que tiene el siguiente error de compilación:

Error 59 Error 3023: Problem in mapping fragments starting at line 356:Column Users.NewsletterSubscribed in table Users must be mapped: It has no default value and is not nullable. 
    C:\Users\Adrian\Documents\Sites\Zeiterfassung\Zeiterfassung\API\V1\EFModel.edmx 357 15 Zeiterfassung 

Pero la columna parece tener un valor por defecto de 0 fijado a ella. Intenté funcionar esta declaración de SQL contra la base de datos:

ALTER TABLE [dbo].[Users] ADD DEFAULT ((0)) FOR [NewsletterSubscribed] 

Pero eso también falla:

Msg 1781, Level 16, State 1, Line 3 Column already has a DEFAULT bound to it. Msg 1750, Level 16, State 0, Line 3 Could not create constraint. See previous errors.

Así que, o la columna no tiene un valor por defecto (en cuyo caso no estoy seguro de por qué lo que pueda 't create one), o Entity Framework no lo ve. Que esta pasando?

Gracias,

Adrian

Respuesta

12

Abra la .edmx con el editor XML de Visual Studio en lugar de con el diseñador de entidad, y añadir un atributo DefaultValue="0" a la columna sin asignar en el SSDL. Por alguna razón, estos no se generan a partir de la base de datos.

+0

¡Gracias! He estado luchando con esto por semanas ... –

Cuestiones relacionadas