2011-07-28 20 views
45

Estoy siguiendo el tutorial de la aplicación de la tienda ASP.NET MVC 3 Music, pero sigo atascado en la parte 4: http://www.asp.net/mvc/tutorials/mvc-music-store-part-4. Se me dice que no tengo el proveedor de datos SQL instalado:No se puede encontrar el Proveedor de datos de .Net Framework solicitado. No puede ser instalado. - Cuando sigo el tutorial de mvc3 asp.net

error exacto:

System.ArgumentException was unhandled by user code 
    Message=Unable to find the requested .Net Framework Data Provider. It may not be installed. 
    Source=System.Data 
    StackTrace: 
     at System.Data.Common.DbProviderFactories.GetFactory(String providerInvariantName) 
     at System.Data.Entity.Internal.LazyInternalConnection.TryInitializeFromAppConfig(String name) 
     at System.Data.Entity.Internal.LazyInternalConnection.Initialize() 
     at System.Data.Entity.Internal.LazyInternalConnection.get_ConnectionHasModel() 
     at System.Data.Entity.Internal.LazyInternalContext.InitializeContext() 
     at System.Data.Entity.Internal.InternalContext.Initialize() 
     at System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType) 
     at System.Data.Entity.Internal.Linq.InternalSet`1.Initialize() 
     at System.Data.Entity.Internal.Linq.InternalSet`1.GetEnumerator() 
     at System.Data.Entity.Infrastructure.DbQuery`1.System.Collections.Generic.IEnumerable<TResult>.GetEnumerator() 
     at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection) 
     at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source) 
     at MusicApplication.Controllers.StoreController.Index() in C:\Users\Michelle\documents\visual studio 2010\Projects\MusicApplication\MusicApplication\Controllers\StoreController.cs:line 18 
     at lambda_method(Closure , ControllerBase , Object[]) 
     at System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters) 
     at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) 
     at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) 
     at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClass15.<InvokeActionMethodWithFilters>b__12() 
     at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation) 
    InnerException: 

He añadido la referencia a System.Data.SqlServerCe - todavía tiene el mismo error. Cualquier orientación sería muy apreciada

+2

Revisaré la ortografía y me aseguraré de que sea 'System.Data.SqlServerCe.4.0'. También http://www.microsoft.com/download/en/details.aspx?id=17876 si no lo ha instalado. – Buildstarted

+0

sí está escrito correctamente ... – michelle

+0

¿Ha intentado reinstalar SQL Server CE? He tenido problemas múltiples en el pasado donde incluso una reparación no funcionó. Desinstale (versiones de 32 y 64 bits si tiene sistema operativo de 64 bits) e instálelo nuevamente. –

Respuesta

30

Pude resolver un problema similar a este en Visual Studio 2010 usando NuGet.

Vaya a Herramientas> Administrador de Biblioteca paquete> Administrar paquetes NuGet Para la solución ...

En el cuadro de diálogo, busque "EntityFramework.SqlServerCompact". Encontrará un paquete con la descripción "Permite que SQL Server Compact 4.0 se use con Entity Framework". Instala este paquete

Un elemento similar al siguiente se insertará en su web.config:

<entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlCeConnectionFactory, EntityFramework"> 
    <parameters> 
     <parameter value="System.Data.SqlServerCe.4.0" /> 
    </parameters> 
    </defaultConnectionFactory> 
</entityFramework> 
+1

eso es exactamente lo que me faltaba, aunque sí instalé el paquete ef.sqlservercompact pero no actualizó mi web.config – andryuha

+0

ese es el proceso exacto que seguí para obtener mi solución para compilar para Music Store Tutorial – Purusartha

16

Tuve el mismo problema. Revisé la versión de System.Data.SqlServerCe en C: \ Windows \ assembly. Fue 3.5.1.0. Así que instalé la versión 4.0.0 del siguiente enlace (x86) y funciona bien.

http://www.microsoft.com/download/en/details.aspx?id=17876

+1

También puede ser necesario agregar ' ' to 'machine .config'. http://forum.linqpad.net/discussion/371/entity-framework-oracle-unable-to-find-the-requested-net-framework-data-provider-it-may-not-be – mbrownnyc

+1

@mbrownnyc Demasiado perezoso para desenterrar machine.config. ¡Web.config ya estaba abierto y pegué el código allí y funcionó! Gracias. resulta que tengo instaladas varias versiones de SqlCE, así que no necesito instalar ninguna. – jokab

0

En mi caso, el problema se debía a un problema de conexión a la base de datos SQL. Acabo de desconectar y luego volver a conectar el origen de datos SQL desde la vista de diseño. Estoy de nuevo en funcionamiento. Espero que esto funcione para todos.

0

que tenía un problema con similer SqlClient en servicio WCF. Mi solución era poner en que las líneas cliente App.config

<startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" /> 
    </startup> 

Hopes ayuda para alguien ..

10

Añadir estas líneas a su archivo web.config:

<system.data> 
    <DbProviderFactories> 
       <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory,MySql.Data, Version=6.6.4.0, Culture=neutral, PublicKeyToken=C5687FC88969C44D"/> 
    </DbProviderFactories> 
</system.data> 

Cambie su proveedor de MySQL a SQL Server o cualquier proveedor de base de datos al que se conecte.

0

Esto me pasó porque creé un nuevo proyecto que estaba tratando de usar System.Web.ProvidersDefaultMembershipProvider para membresía. Mi DB y la aplicación estaban configuradas para usar System.Web.Security.SqlMembershipProvider en su lugar. Tuve que actualizar el proveedor y la cadena de conexión (ya que este proveedor parece tener algunos requisitos extraños de cadena de conexión) para que funcione.

0

que tenían la misma cuando se sigue MvcMusicStore Tutorial en la parte 4 y se sustituye la cadena de conexión dado con esto:.

add name = "MusicStoreEntities" connectionString = "Data Source = \ SQLEXPRESS; Integrated Security = SSPI; base de datos = MvcMusicStore; ID de usuario = sa; contraseña = " providerName =" System.Data.SqlClient "/>

Me funcionó.

1

Este error se debe principalmente a la arquitectura del procesador incompatibilidad con instalado Marco ei x86 vs x64 La solución: Ir al explorador de soluciones> propiedades del proyecto> pestaña Compilar> Opciones de compilación avanzadas Hay que haya que cambiar la CPU de destino de X64 a X86 Guarde la nueva configuración y vuelva a compilar su solución. Lo probé y funcionó muy bien. Espero que esto te ayude. Malek

Cuestiones relacionadas