Il database crea innanzitutto il modello di quadro 6.1.1 utilizzando system.data.sqlite 1.0.93

Ho un progetto che ho appena aggiornato usando nuget. Questo framework di quadro aggiornato da 6.1 a 6.1.1, e ha aggiornato sqlite a 1.0.93. Volevo aggiornare il mio modello dal mio ultimo database. Ho fatto i passi di 1) Modello dal Database 2) Seleziona database SQLite 3) Genera

Dopo la generazione ho ricevuto il seguente messaggio di errore mostrato di seguito. Ho installato i componenti di progettazione 1.0.93. Qualcuno sa cosa sta causando esattamente questo errore. I riferimenti e le versioni del progetto corrispondono tutti alle versioni mostrate sopra.

Messaggio di errore:

Il tuo progetto fa riferimento all’ultimo Entity Framework; tuttavia, non è stato ansible trovare il provider di database Entity Framework compatibile con questa versione per la connessione dati dell’utente.

Aggiornare:

Ho finito per installare 6.1.0 manualmente usando la console del gestore pacchetti

Install-Package EntityFramework -Version 6.1.0

Quindi nei miei file csporj in sostituzione

pacchetti \ EntityFramework.6.1.1

con

pacchetti \ EntityFramework.6.1.0

Ho provato a creare EF Designer dal database e codice prima dal database, ma sto ancora ricevendo lo stesso errore.

AGGIORNARE

Ho seguito le istruzioni fornite da Tom e, grazie per il tempo dedicato a rispondere in modo approfondito, è apprezzato. Ma non riesco a far funzionare l’entity framework designer con SQLite 1.0.93. Quello che ho trovato:

1) Quando aggiungo l’origine dati SQLite dal menu degli strumenti come Tom descrive Vedo il fornitore di dati SQLite.

Connetti a origine dati”>

2) Ma quando riavvio Visual Studio la fonte dei dati non è collegata

Dopo il riavvio la connessione è persa

3) L’origine dati può essere aggiornata ed è valida dopo il riavvio

Le tabelle vengono visualizzate dopo l'aggiornamento

4) Aggiungi un nuovo elemento di dati ma SQLite non è elencato come fornitore

SQLite non è elencato come fornitore

Ho ricontrollato il registro e EF6 è stato aggiunto al nome invariante, le DLL SQLite sono state registrate nel GAC. Proverò a vedere cos’altro posso trovare ma a questo punto non sono sicuro di cosa cercare. Come nota a margine ho provato dotConnect e non funziona con EF 6.1.1.

Aggiornamento 2

Qualcuno sa se Entity Framework Designer ha un’opzione di registrazione per scoprire cosa potrebbe accadere?

[ AGGIORNAMENTO : per una soluzione più semplice che funzioni con Visual Studio 2013 Update 4 (Pro e Ultimate) e versioni recenti di Sqlite Provider e EF, guarda la soluzione ‘broslav’ pubblicata di seguito. Non so se funziona con le edizioni Express …]

Ok, questo è un suggerimento. Questo NON funziona per le edizioni di Visual Studio Express. Inoltre, non sono sicuro di come farlo funzionare per un aggiornamento di un progetto esistente. Ed è un dolore assoluto nel sedere. Non ho provato se tutto è richiesto, ma questo dovrebbe funzionare:

Innanzitutto, NON utilizzare il pacchetto NuGet per SQLite, ma scaricare il programma di installazione dell’assembly da qui: http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki

Installare il programma di installazione per Windows a 32 bit (.NET Framework 4.5.1): sqlite-netFx451-setup-bundle-x86-2013-1.0.93.0.exe (10.00 MiB) (NON la versione a 64 bit). Questo è l’unico con il designer.

Installare e selezionare per l’installazione in GAC e installare Designer per VS13.

Per quanto segue, l’ ordine esatto è importante!

Ho fatto un video di questi passaggi , vedi: http://vimeo.com/103372740

Creare un progetto in VS13. Indirizzare la build al framework 4.5.1 e x86 in modo esplicito. Salva e costruisci.

Quindi, installare l’ultimo pacchetto EF 6 (6.1.1) di NuGet. Salva e costruisci.

Aggiungere manualmente riferimenti agli assembly SQLite installati (incluso Designer), sotto Gestione riferimenti in Assemblee è ansible trovare l’opzione Estensioni per selezionare i quattro assembly aggiunti nel GAC: System.Data.SQLite Core + Designer + per Entity Framework + per LINQ .. Salva e costruisci.

Quindi creare una connessione al database tramite Connetti al database in Strumenti. Prima di fare qualsiasi altra cosa, salva e crea e quindi RESTART Visual Studio. NON FARE NULLA ALTRO prima di avviare la procedura guidata Modello dati Entity di ADO.NET, quindi NON aggiornare la connessione al database.

Aggiungere un modello di dati di quadro ADO.NET, selezionare Genera dal database. La tua connessione al database verrà visualizzata nell’elenco a discesa. Conservalo lì, ma seleziona comunque per creare una Nuova connessione e seleziona di nuovo lo stesso database (come se stessi creando una nuova connessione). Sembra sciocco, ma è fondamentale, vedi l’immagine qui sotto …

Connetti modello entità

Quando ho effettivamente aggiunto un modello di dati di quadro ADO.NET in questo modo ha presentato l’errore fastidioso, ma il pulsante Avanti è selezionabile e tutto ha funzionato a prescindere (sorprendentemente)!

Designer lavora, recupera dati e scrive dati.

Non ho testato la distribuzione su un’altra macchina però … Sto usando Win7 a 64 bit.

AGGIORNAMENTO MODIFICATO: per ottenere la configurazione corretta per accedere effettivamente al database, è necessario installare il pacchetto System.Data.SQLite.EF6 da NuGet dopo aver eseguito tutte le operazioni precedenti, quindi aggiungere il tipo a App.Config e rimuovere gli altri provider e rimuovere tutto tra , altrimenti otterrai qualche eccezione. Tuttavia, ciò significa che ogni volta che si desidera aggiornare il modello EDMX, è necessario modificare App.Config invariantName = “System.Data.SQLite” in invariantName = “System.Data.SQLite.EF6” e viceversa.

** Questo sta diventando ridicolo? Sì! E mi ha dato un bel mal di testa … **

Questo è ciò che ha funzionato per me:

Quindi i pacchetti che avevo erano:

         

e l’app.config che funzionava per me aveva contenuti:

 < ?xml version="1.0" encoding="utf-8"?>    

Come potete vedere, in qualche modo alla fine, per me, non era necessario rimuovere “EF6” da invariantName o rimuovere o riorganizzare altri provider o factory di connessione predefinite. Non dovevo fare nessun hack reg. Riorganizzare i tag add / remove (che sono stati aggiunti durante l’installazione del pacchetto NuGet System.Data.SQLite 1.0.94.1) nell’app.config del progetto di avvio ha fatto la differenza.

Dopo tutto quanto sopra, ho aggiornato EntityFramework a 6.1.2 tramite NuGet e sia l’aggiornamento del modello dal database tramite il designer che l’accesso ai dati in fase di esecuzione funzionano ancora.

Ho finalmente dei passaggi per aggiungere coerentemente Sqlite ed EF6 a un progetto:

EF6: versioni 6.0.0 da 6.1.3 (attualmente l’ultima versione). System.Data.Sqlite: 1.0.93 – 1.0.95 ma non 1.0.98 (attualmente l’ultima versione).

Per evitare di ottenere System.Data.Sqlite 1.0.98, non installare utilizzando Nuget Package manager. Installa manualmente System.Data.Sqlite. Sfortunatamente, http://system.data.sqlite.org/ non elenca prontamente i download precedenti.

x86 System.Data.Sqlite 1.093

x64 System.Data.Sqlite 1.093

Utilizzo il gestore di pacchetti Nuget e installo EF6, quindi ho aggiunto manualmente la libreria System.Data.Sqlite. Ho provato più volte ad usare 1.0.98 ma non posso

File App.config

Per la mia implementazione, sto lavorando con il database per prima cosa manualmente codificando le classi di dati dell’ quadro

  public partial class MyDbContextEF : DbContext { public MyDbContext() : base("name=MyDbContext") { } public DbSet DataRecords { get; set; } } [Table("TableName")] public class DataRecord { [Key] public Int64 RowID { get; set; } public string Name { get; set; } } 

Ho segnalato questo problema e una correzione è in corso e una soluzione alternativa sembra disponibile (non l’ho testata) http://system.data.sqlite.org/index.html/tktview?name=e634e330a6

Ho avuto lo stesso identico problema: il wizard del progettista di modelli non mostrava il mio dl sqlite nell’elenco a discesa. Sono stato in grado di risolverlo armeggiando con la connessione db sqlite e le tabelle.

0a) Ho aggiunto una connessione tramite Server Explorer al mio file sqlite (i provider e i server sqlite mostrati nella nuova procedura guidata di connessione per Server Explorer ma non il mio edmx Model Wizard) 0b) A questo punto non veniva mostrato nella Creazione guidata modello edmx ancora, ma è stato mostrato come connessione dati in Esplora server. 1) Ho aggiunto una tabella al file sqlite. 2) Ho chiuso la connessione al db sqlite tramite il Server Explorer 3) Ho aperto il design della mia tabella fittizia om il file sqlite tramite Server Explorer (riavviando così la connessione) 4) Ho provato a “Aggiorna modello dal database .. . “e veniva visualizzato nell’elenco a discesa

Un altro passaggio che non ho incluso sopra è stato creato ed eliminato un database .mdf del server SQL New Item... > Database Service... L’ho fatto poco prima di provare i passaggi precedenti. Presumo che non avrebbe importanza, ma non si sa mai.

Non sono sicuro di cosa ha fatto esattamente. Sembrava una disconnessione manuale e riconnettersi attraverso il server explorer fatto VS “sveglia” e visualizzare il server nella lista. Prova a giocherellare con la connessione e le tabelle un po ‘per vedere se questo si sveglia qualcosa.

Ho avuto anche questo problema. Probabilmente la causa è stata che ho dimenticato di spuntare la casella di controllo di Visual Studio quando installavo il driver system.data.sqlite e poi l’ho installato sopra con la casella spuntata senza prima disinstallare il driver system.data.sqlite. Ecco come l’ho risolto:

  1. Disinstallare il driver system.data.sqlite.
  2. Reboot.
  3. Installa il driver system.data.sqlite
  4. Elimina la vecchia soluzione e impostala di nuovo, proprio come hai fatto tu (potrebbe non essere necessario).
  5. Aggiungi il modello di quadro ADO.NET (il modello mancava per me, questa risposta mi è stata di aiuto )
  6. L’origine dati sqlite dovrebbe essere ora disponibile.