No se pueden usar anotaciones de datos

c# entity-framework-core

Pregunta

Así que aquí estamos tratando de controlar EF7 antes del juego y me encuentro con lo que solo puedo llamar locura.

En EF6 uso bastante las anotaciones y estoy tratando de trasladarlo a EF7, que según el proyecto de UnicornStore es totalmente válido, sin embargo, estoy encontrando un problema en el que Visual Studio 2015 se queja de que no tengo una referencia. al ensamblado System.ComponentModel.DataAnnotations. Justo lo suficiente, agrego mi referencia al ensamblaje y ahora obtengo lo siguiente de DNX Core 5.0:

Error   CS0234  The type or namespace name 'DataAnnotations' does not exist in the namespace 'System.ComponentModel' (are you missing an assembly reference?) Lib.DNX Core 5.0

Por mi vida, no puedo entender qué está pasando aquí, ya que cuando veo el UnicornStore como mi referencia, no hay ninguna referencia a ese ensamblaje en el proyecto.json, sin embargo, hay una referencia en el proyecto. lock.json y como lo entiendo, no se supone que edites ese archivo.

La gran pregunta ¿qué estoy haciendo mal? ¿Por qué DNX 4.5.x no se queja de la referencia y, sin embargo, DNX Core 5.0 es?

Respuesta aceptada

El proyecto web .Net 4.6 (también llamado vNext) tiene una dependencia en Microsoft.AspNet.Mvc . Esto extrae un gran árbol de dependencias, las anotaciones de datos están bajo el paquete Microsoft.DataAnnotations

para usar la anotación de datos en su proyecto use Microsoft.DataAnnotations en lugar de System.ComponantModel.DataAnnotations .


Respuesta popular

Acabo de tener precisamente este problema con beta8. Lo resolví combinando las otras respuestas y comentarios que se dan aquí para proporcionar una compilación cruzada para DNX 4.5.1 y DNX Core 5.0:

"frameworks": {
  "dnx451": {
    "frameworkAssemblies": {
      "System.ComponentModel.DataAnnotations": "4.0.0.0"
    },
    "dependencies": {
    }
  },
  "dnxcore50": {
    "dependencies": {
      "System.ComponentModel.Annotations": "4.0.11-beta-23409"
    }
  }
}



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué