6

Ho un progetto che utilizza Entity Framework, ma non sono sicuro di quale versione di EF sto usando. Secondo il Microsoft version history EF5 si installerà:Quale versione di Entity Framework viene utilizzata dal mio progetto?

Se si crea un nuovo modello utilizzando Progettazione Entity Framework in Visual Studio 2012, il pacchetto EF5 NuGet verrà installato al progetto e il codice generato farà uso di EF5.

Tuttavia, non ho creato la parte EF del progetto, ma l'ho ottenuta dal controllo di versione (TFS). Ora non sono sicuro di come determinare se ho EF5.

Se faccio clic con il pulsante destro del mouse sulla cartella Riferimenti del progetto e selezioni Gestisci pacchetti NuGet, mostra EF5 con un pulsante di disinstallazione, il che implica che ho EF5.

Tuttavia, system.data.entity nella cartella Riferimenti ha una versione runtime v4.0.30319 e Versione 4.0.0.0 in Proprietà explorer, che implicherebbe EF 4 (in base a Determine version of Entity Framework I am using?).

Io ho questo nel mio app.config:

<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 

E questo nel mio web.config:

<configSections> 
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
</configSections> 
<!--...--> 
    <dependentAssembly> 
    <assemblyIdentity name="EntityFramework" publicKeyToken="b77a5c561934e089" culture="neutral" /> 
    <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" /> 
    </dependentAssembly> 
<!--...--> 
    <entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" /> 
    </entityFramework> 

Qualcuno può chiarire questo?

risposta

3

Forse il tuo proyect è basata in .NET 4.0, in questo caso si dispone di una versione EF5 senza .NET 4.5 caratteristiche:

EntityFramework 5 use dll version 4.4.0.instead 5.0

+0

Buon punto, a cui non avevo pensato. Ho controllato i miei progetti, ma sembrano tutti .NET 4.5. –

0

Ho lo stesso numero di versione System.Data.Entity. Questo deriva dal framework .Net, non dall'installazione di Entity Framework. Puoi vedere quali parti della tua app lo stanno utilizzando facendo clic con il tasto destro del mouse sul riferimento e selezionare Trova codice dipendente dal modulo. Generalmente non c'è molto a meno che il codice non acceda ai metadati, principalmente enum di stato e attributi defn. Prossima versione porterà tutto questo nella EntityFramework.dll - vedi EFv6

BTW, guardando la cartella nella proprietà di System.Data.Entity, v4.0.30319 è in NETFramework \ v4.5

+0

1. Dal momento che non riesco a utilizzare le funzioni utilizzate da EF5, come mi sta aiutando il codice che usa il modulo? 2. Secondo [questa risposta] (http://stackoverflow.com/a/12539749/422877), dovrei guardare solo a 'EntityFramework.dll', che mostra anche ** Versione di runtime ** v4.0.30319 ma * * Versione ** 5.0.0.0. –

0

Il modo più semplice per ottenere questo tipo di informazioni è quello di installare Microsoft ASP.NET MVC Diagnostics 5.2.3

Questo solo produce una pagina web per il vostro progetto con tutte le informazioni pertinenti. Ad esempio, puoi semplicemente cercare "Entity" su quella pagina e vedere subito le informazioni sulla versione.

Questo è un article che mostra un uso di questo strumento di diagnostica.

1

Vai al file packages.config del tuo progetto.

<package id="EntityFramework" version="6.1.3" targetFramework="net45" /> 
Problemi correlati