6

Estoy utilizando Entity Framework Code First 4.3 + Azure y tengo dificultades para conectarme a la base de datos. El error que consigo es la siguiente (en la primera consulta):Código Entity Framework Primera conexión Azure

Keyword not supported: 'server'. 

tengo la siguiente configuración de conexión en mi Web.config

<configSections> 
    type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.3.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 
    </configSections> 

    <connectionStrings> 
    <add name="TestDBContext" 
     connectionString="Server=tcp:[SUBSCR].database.windows.net,1433;Database=[MyDB];User ID=[user];Password=[pass];Trusted_Connection=False;Encrypt=True;PersistSecurityInfo=True" 
     providerName="System.Data.EntityClient" /> 
    </connectionStrings> 

Mi DbContext clase que implementa usa el nombre de la cadena de conexión:

public class MyContext : DbContext, IMyContext 
    { 
     public MyContext() 
      : base("TestDBContext") 
     { 
      Configuration.LazyLoadingEnabled = true; 
      Configuration.ProxyCreationEnabled = true; 
     } 

¿Puede decirnos qué está pasando?

Respuesta

0

intenté así, puede ser útil. puede ser 1433 está causando problemas, ¿es el puerto no? ¿o que? . intenta así

verificación de este enlace Windows Azure with Sql

<add name="dbContext" connectionString="Server=tcp:xxxxxxxx.database.windows.net;Database=xxxxxxxx;User [email protected];Password=xxxxxxxxxx;Trusted_Connection=False;Encrypt=True;" providerName="System.Data.EntityClient" /> 
+0

lo intenté, no funciona ... 1433 es el puerto predeterminado para el servidor sql y copio la cadena de conexión pegada de mi suscripción/base de datos Azure. –

0

Prueba esto:

datos Fuente = tcp: YOUR-DATABASE-HERE.database.windows.net, 1433; Base de datos = GolfRounds; ID de usuario = SU NOMBRE DE USUARIO @ SU-SERVIDOR; Contraseña = SU-CONTRASEÑA; Trusted_Connection = False; Encrypt = True;

También hay un artículo de MSDN en http://msdn.microsoft.com/en-us/library/windowsazure/ff951633.aspx que puede ser útil.

+0

Palabra clave no admitida: 'fuente de datos'. –

5

Acabo de tener el mismo problema.

Falta todos los metadatos en la cadena de conexión que requiere Entity Framework. La cadena de conexión proporcionada por SQL Azure debe insertarse dentro del parámetro provider connection string de la cadena de conexión de EF.

<add name="MyConnectionString" connectionString="metadata=res://*/Model.Model.csdl|res://*/Model.Model.ssdl|res://*/Model.Model.msl;provider=System.Data.SqlClient;provider connection string=&quot;[PUT SQL AZURE CONN STRING HERE]&quot;" providerName="System.Data.EntityClient" />

Usted tendrá que utilizar los metadatos de su propio proyecto. Saqué esos metadatos de un proyecto EF que se genera a partir de una base de datos existente.

+1

Estoy usando el código EF primero + DbContext (no estoy generando mi modelo de datos de la base de datos) por lo que no tengo ningún metadato disponible en el momento del desarrollo. –

+7

@Sese Si está utilizando Code First, su proveedor de cadena de conexión debe ser 'System.Data.SqlClient' no' System.Data.EntityClient'. – ryanmcdonnell

2

Tuve el mismo problema. He resuelto, poniendo en el web.config este connectionstring:

<add name="eManagerTurModelConnection" connectionString="metadata=res://*/ORM.eManagerFinanceModel.csdl|res://*/ORM.eManagerFinanceModel.ssdl|res://*/ORM.eManagerFinanceModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=<server>.database.windows.net;Initial Catalog=eManagerTur;Integrated Security=False;User ID=<user>;Password=<Password>;Connect Timeout=15;Encrypt=False;TrustServerCertificate=False;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /> 

Y después me quita el connectionstring de mi página web, trabajado, ya que no estaba recibiendo la cadena de conexión que he añadido en mi web.config.

Inglés mal ... =)

2

El proveedor debe ser providerName = "System.Data.SqlClient"

he conectado a Azure de VS y luego miré las propiedades y establecer mi cadena de conexión y nombre del proveedor.

<add name="context" connectionString="Data Source=myServer,myPort;Initial Catalog=myDBName;Persist Security Info=True;User ID=myUserName;Password=myPassword;" providerName="System.Data.SqlClient"/> 

Pude ejecutar la base de datos de actualizaciones sin problemas.

-1

Tuve un problema similar cuando no tenía acceso a los metadatos, en este caso necesita usar System.Data.SqlClient como proveedor.También necesitará agregar MultipleActiveResultSets = True a su cadena de conexión

Cuestiones relacionadas