2013-10-18 13 views
9

io non riesco a ottenere Entity Framework 6.0.1 da installare su un paio di progetti F # che ho. Questo è il messaggio di errore che sto ricevendo:Ottenere EF 6 da NuGet da installare su # progetti F

Esecuzione del file di script 'C: \ source \ payboard \ PayboardWeb \ packages \ EntityFramework.6.0.1 \ tools \ install.ps1'. Eccezione chiamata "SetData" con argomento "2": "Tipo" Microsoft.VisualStudio.FSharp.ProjectSystem.Automation.OAProject "in assembly" FSharp.ProjectSystem.Base, Versione = 12.0.0.0, Cultura = neutra, PublicKeyToken = b03f5f7f11d50a3a 'non è contrassegnato come serializzabile. " In C: \ source \ payboard \ PayboardWeb \ packages \ EntityFramework.6.0.1 \ tools \ EntityFramework.psm1: 633 char: 5 + $ domain.SetData ('progetto', $ Progetto) + ~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoriaInfo: Non specificato: (:) [], MethodInvocationException + FullyQualifiedErrorId: SerializationException

System.NullReferenceException: riferimento oggetto non impostato su un'istanza di un oggetto. a System.Data.Entity.ConnectionFactoryConfig.InitializeEntityFrameworkCommand.Execute() a System.Data.Entity.Migrations.MigrationsDomainCommand.Execute (comando azione)

Sembra che ci sia un bug aperto per esso sul EF6 forum (https://entityframework.codeplex.com/workitem/891), ma non ha avuto alcun amore, per quanto posso dire.

EF6 installa bene su # progetti non-F.

Eventuali soluzioni alternative?

+0

credo che si sono praticamente fuori di fortuna fino MS cambia il tipo 'Microsoft.VisualStudio.FSharp.ProjectSystem.Automation.OAProject' essere serializzabile. Puoi sempre inviare questo problema sul sito User Voice per F # per vedere se questo ottiene più amore. Dubito che il team EF sarà in grado di sistemare qualcosa nella lingua di base. –

+1

Se si legge nei commenti del seguente post del team EF, qualcuno del team risponde in qualche modo alla domanda su quando EF supporterà F #. Non sono sicuro se aiuta ma è almeno un riconoscimento ufficiale. http://blogs.msdn.com/b/adonet/archive/2013/10/31/ef6-performance-issues.aspx –

+0

ho scavato attraverso @ collegamento di ScottWylie e ho trovato [elementi di lavoro 891] (https: // EntityFramework. codeplex.com/workitem/891) menzionato. Sembra che F # possa funzionare nella prossima versione di EF. –

risposta

5

questo sta diventando sbloccato in EF6.1. Here è l'elemento di lavoro.

Si noti che il problema qui non è EF in sé, ma come viene aggiunto il pacchetto per il vostro progetto. Questo mi fa pensare che fino al rilascio di EF6.1 potresti probabilmente aggirare questo problema facendo decomprimere il pacchetto e aggiungendo riferimenti agli assembly EF6 manualmente al tuo progetto. Quindi dovresti aggiornare di conseguenza la tua configurazione. (Puoi anche creare un progetto C# temporaneo aggiungere il pacchetto Nu6 di EF6 che ti darà le dime EntityFramework e EntityFramework.SqlServer che potresti copiare nel tuo progetto F # e anche un file di configurazione che potresti copiare da cui sarà molto più facile che venire con il giusta configurazione sul proprio)

+0

Stavo cercando di creare un progetto C# che avrebbe fatto tutte le cose del database, ma quando ho provato a interrogare il database, l'EF non poteva raggiungere il server MySQL perché il web.config non era configurato correttamente, anche se l'app.config in quel progetto C# andava bene. Questo è quello che proverò: trasferire tutte le configurazioni EF pertinenti da app.config a web.config, ma la tua soluzione sembra valere la pena provare. Ecco i tuoi 50 punti haha. –

+1

Il pacchetto NuGet installa di default il provider SqlServer e configura l'app per SqlServer.Se si desidera utilizzare MySql è necessario installare il provider MySql e modificare la registrazione del provider nel file di configurazione. – Pawel

+0

Sì, l'ho fatto, ma poiché il file di configurazione si trovava in un altro progetto, l'EF non è riuscito a raggiungerlo. –

Problemi correlati