Impossibile utilizzare le annotazioni di dati

c# entity-framework-core

Domanda

Quindi qui stiamo cercando di ottenere una mano su EF7 prima del gioco e mi sto imbattendo in quello che posso solo definire follia.

In EF6 uso un po 'le annotazioni e sto provando a trasferirle in EF7 che, secondo il progetto UnicornStore, è totalmente valido, tuttavia mi imbatto in un problema in cui studio visivo 2015 si lamenta che non ho un riferimento all'assembly System.ComponentModel.DataAnnotations. Abbastanza corretto, aggiungo il mio riferimento all'assembly e ora ricevo quanto segue da 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

Per la vita di me non riesco a capirlo quanto sta succedendo qui, come quando guardo l'UnicornStore come mio riferimento non c'è riferimento a quell'assemblaggio nel project.json, comunque c'è un riferimento nel progetto. lock.json e, a quanto ho capito, non dovresti modificare quel file.

La grande domanda che cosa sto sbagliando? Perché DNX 4.5.x non si lamenta del riferimento eppure DNX Core 5.0 è?

Risposta accettata

Il progetto web .Net 4.6 (chiamato anche vNext) ha una dipendenza da Microsoft.AspNet.Mvc . Questo tira in un grande albero di dipendenze, le annotazioni di dati sono sotto il pacchetto Microsoft.DataAnnotations

per l'utilizzo dell'annotazione Dati nel progetto, utilizzare Microsoft.DataAnnotations al posto di System.ComponantModel.DataAnnotations .


Risposta popolare

Ho appena avuto questo problema con beta8. L'ho risolto combinando le altre risposte e i commenti qui forniti in modo da fornire una compilazione incrociata per DNX 4.5.1 e 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"
    }
  }
}


Related

Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché