Impossible d'utiliser les annotations de données

c# entity-framework-core

Question

Nous essayons donc de maîtriser EF7 avant le match et je me heurte à ce que je ne peux que qualifier de folie.

Dans EF6, j'utilise assez souvent les annotations et j'essaie de les transférer dans EF7, ce qui, selon le projet UnicornStore, est tout à fait valide. Cependant, je rencontre un problème où visual studio 2015 se plaint de ne pas avoir de référence à l'assembly System.ComponentModel.DataAnnotations. Très bien, j’ajoute ma référence à l’assemblage et j’obtiens ce qui suit 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

Pour ma vie, je ne peux pas comprendre ce qui se passe ici, car lorsque je regarde UnicornStore comme référence, il n'y a aucune référence à cet assemblage dans le fichier project.json, mais il y en a une dans le projet. lock.json et si je comprends bien vous n'êtes pas censé éditer ce fichier.

La grande question qu'est-ce que je fais mal? Pourquoi DNX 4.5.x ne se plaint-il pas de la référence alors que DNX Core 5.0 l’est?

Réponse acceptée

Le projet Web .Net 4.6 (également appelé vNext) dépend de Microsoft.AspNet.Mvc . Cela tire dans un grand arbre de dépendances, les annotations de données sont sous le package Microsoft.DataAnnotations

pour utiliser l'annotation de données dans votre projet, utilisez Microsoft.DataAnnotations à la place de System.ComponantModel.DataAnnotations .


Réponse populaire

Je viens d'avoir précisément ce problème avec beta8. Je l'ai résolu en combinant les autres réponses et commentaires donnés ici afin de fournir une compilation croisée pour DNX 4.5.1 et 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"
    }
  }
}


Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi