21

acabo de comenzar a utilizar EF y se encontró que se enfríe, pero me encontré con un problema,Actualización de Entity Framework Modelo

Problema:
he cambiado de esquema de base de una columna dentro de la tabla de usuario, Era Varbinary (50) anteriormente lo cambié a VarChar (50), y luego dentro del diseñador de MyModel.edmx elegí "Actualizar el modelo de la base de datos", después de hacer clic en Terminar recibí este error.

error:

 
    Error 2019: Member Mapping specified is not valid. 
    The type 'Edm.Binary [Nullable=False,DefaultValue=,MaxLength=100,FixedLength=False]' of member 
    'Email' in type 'LearnDBModel.User' is not compatible with SqlServer.varchar 
    [Nullable=False,DefaultValue=, MaxLength=50,Unicode=False,FixedLength=False]' of member 'Email' 
    in type 'LearnDBModel.Store.User'. 

Déjame saber cómo solucionarlo

+1

¿Tenía algún dato en la base de datos? – Xharze

+0

@Xharze En realidad, la tabla en la que hice los cambios está vacía. –

Respuesta

48

me he encontrado con problemas similares antes, y se encontró que la manera de resolver era eliminar la tabla de el modelo. Guarde y cierre el modelo. A continuación, vuelva a abrir el modelo y vuelva a agregar la tabla.

+0

Oye funcionó como magia :), más uno para ese –

+0

también puede cortar/guardar/pegar/guardar – FLICKER

+0

si esto no funcionó. necesitas editar manualmente el.emdx file – FLICKER

1

No hay necesidad de preocuparse por eso. Seleccione la tabla afectada en el modelo. Si observa, encontrará una nueva corrección de publicación de nombre de columna con un entero (Este comportamiento solo se debe al cambio en el tipo de datos de esa columna).

Ejemplo si el nombre de su columna es "Samplecolumn", después de actualizar el modelo de la base de datos, obtendrá una nueva columna con Samplecolumn1. Ahora puede simplemente eliminar la columna anterior "Samplecolumn" y cambiarle el nombre a la nueva columna "Samplecolumn1" por "Samplecolumn" usando la ventana de propiedades en la categoría general.

Solo crea tu aplicación. El error desaparecerá

+0

Bueno, gracias por la ayuda, + 1 por eso –

10

La solución de Shawn de Wet funciona bien pero en caso de que no desee eliminar la tabla (por ejemplo, relación con otras tablas ...) puede usar otra solución: Abra su archivo edmx con xml Editor, Ctrl + F encontrar una línea similar a

Property Name="Email" Type="Binary" Nullable="false" MaxLength="50" FixedLength="false"

actualizarlo a:

Property Name="Email" Type="String" Nullable="false" MaxLength="50" Unicode="false" FixedLength="false"

Guardar y reconstruir.

+0

Havent lo intentó, pero se ve lo suficientemente bueno :) –

+0

Increíble ........ + 1. Esto me ayudó. Gracias... – User

-2

haga clic derecho en las propiedades de la tabla modificada en Model.edmx [Diagram] y "Actualizar el modelo desde la base de datos". guardar y ejecutar

2

Muchos archivos en el modelo EF obtienen f ***** d. Eliminar y agregar la entidad no fue suficiente. Las entidades se duplicaron como table, table1, table_result, table1_result, table_result1, etc. ... La actualización del modelo estaba actualizando las referencias duplicadas en lugar del original.

tengo que abrir el bloc de notas y corregir manualmente estos archivos:

EFModel.Context.cs 
EFModel.edxm 

y eliminar estos archivos:

obj\Debug\edmxResourcesToEmbed\MYEfModel.csdl 
obj\Debug\edmxResourcesToEmbed\MYEfModel.msl 
obj\Debug\edmxResourcesToEmbed\MYEfModel.ssdl 
Cuestiones relacionadas