2011-07-08 17 views
10

Cuando intento trazar una columna a un tipo de datos char en mi clase del modelo consigo un error:¿Cuáles son las propiedades primitivas válidas en Entity Framework Code First?

The property '[ColumnName]' is not a declared property on type '[ClassName]'. Verify that the property has not been explicitly excluded from the model by using the Ignore method or NotMappedAttribute data annotation. Make sure that it is a valid primitive property.

¿Cuáles son los tipos primitivos válidos para el código de EF en primer lugar?

Respuesta

16

Esto es interesante, pero realmente no se puede asignar la propiedad char. Acabo de comprobar y si usted quiere tener char(1) en la base de datos tiene que usar string propiedad con asignación siguiente:

modelBuilder.Entity<MyEntity>() 
      .Property(p => p.MyProperty) 
      .HasMaxLength(1) 
      .IsFixedLength() 
      .IsUnicode(false); 

No es solamente un problema de Código-primero. Es toda la limitación de EF porque el diseñador de EDMX tampoco muestra el tipo char. Creo que los tipos permitidos serán los mismos que se describen en CSDL reference para EDMX porque el código primero es solo envoltorio alrededor de la misma infraestructura de mapeo.

+0

Hehe "¿Cuáles son los tipos primitivos válidos para EF Code First?" – X181

+0

Sugerencia: El error también se produce si tiene una propiedad con un sistema privado. En mi caso, la propiedad estaba en una clase base. – X181

Cuestiones relacionadas