The type 'System.ComponentModel.DataAnnotations.MaxLengthAttribute'
exists in both
[path...]\packages\EntityFramework.4.3.1\lib\net40\EntityFramework.dll
and
'c:\Program Files (x86)\Reference Assemblies\Microsoft\Framework
\.NETFramework\v4.5\System.ComponentModel.DataAnnotations.dll'
Ora, ho letto on msdn che la sua sicurezza per escludere il riferimento EntityFramework (che è stato aggiunto attraverso il pacchetto NuGet). Tuttavia, quando lo faccio, non posso creare un DBContext correttamente come la classe DbModelBuilder vive nella dll EntityFramework. Inoltre, mancano alcune altre classi critiche quando rimuovo la refferenza EntityFramework, quindi questa è una soluzione vecchia e irrilevante ora.MaxLength attributo in EF4.3.1
Update (disambigua): Sia System.ComponentModel.DataAnnotations.dll
e EntityFramework.dll
includono System.ComponentModel.DataAnnotations.MaxLengthAttribute
. Il problema è che ogni DLL include anche altre classi che sono fondamentali per la progettazione del codice EF prima. Per esempio:
EntityFramework.dll:
- System.Data.Entity.DbModelBuilder
System.ComponentModel.DataAnnotations.dll:
- System.ComponentModel.DataAnnotations.RegularExpressionAttribute
Grazie per la risposta, ma per favore leggi di nuovo la domanda. Il problema che ho è che ho bisogno di entrambe le DLL, e ho il refference e il set di istruzioni using, ma questo crea un conflitto. System.ComponentModel.DataAnnotations.MaxLengthAttribute è anche presente in System.ComponentModel.DataAnnotations.dll. Ill modifica per includere quella informazione –
@MihalisBagos: ho avuto il tuo problema. È perché .NEt 4.5 ha questo spazio dei nomi all'interno di DataAnnotations.dll. Quindi dovresti cambiare la tua versione EF in base a quello. Vedi la mia risposta aggiornata. – Shyju
Doh ora ha senso, grazie! Stavo cercando di capire cosa ho sbagliato ... Il comando per il pacchetto nuget è Install-Package EntityFramework -Pre per quello che vale –