¿Cómo puedo decirle a EF qué el nombre de la base de datos y donde colocarlo?

Si no hay ninguna cadena de conexión en el Web.Config, intenta ponerlo en el local SQLEXPRESS Servidor, pero quiero ponerlo en un conocido de SQL Server y el nombre es lo que yo quiero. Alguna sugerencia?

  • Usted puede nombrar a su base de datos, por medio de su contexto del constructor como este public MyContext() : base("NameForTheDB") { }
InformationsquelleAutor Sam | 2011-03-18

7 Comentarios

  1. 23

    Cómo Utilizar una Cadena de Conexión Distinta Nombre con EF

    EF se utilice el nombre de la base de datos en la cadena de conexión. Cuando se desea separar el nombre de su cadena de conexión EF, usted necesitará proporcionar su cadena de conexión para el constructor. Ejemplo:

    public class DatabaseContext : DbContext
    {
        public DatabaseContext() 
          : base(ApplicationParameters.ConnectionStringName)
        {
        }
    
        public DatabaseContext(string connectionStringName)
          : base(connectionStringName)
        {
        }
    
    }
  2. 17

    en Clase :

    public class Context : DbContext
    {
        //SET CONNECTION STRING NAME FOR DataBase Name :
        public Context() : base("YourConnectionName") { }
    
        public DbSet<Category> Categories { get; set; }
        public DbSet<Product> Products { get; set; }
    }

    en la web.config:

    <connectionStrings>  
        <add name="YourConnectionName" connectionString="Data Source=A-PC\SQLEXPRESS;
        Initial Catalog=MyDataBase; Integrated Security=True" 
        providerName="System.Data.SqlClient" />
    </connectionStrings>  

    Gracias ferventcoder.

    Ref => http://brandonclapp.com/connection-strings-with-entity-framework-5-code-first/

  3. 3

    Como ya se ha mencionado, usted puede declarar su cadena de conexión en el interior del archivo de configuración de la aplicación con un nombre (digamos «YourDBName») y, a continuación, pasar esto a la DbContext base de la llamada al constructor (voy a añadir esto a la respuesta para proporcionar una respuesta completa – grandes respuestas ya dadas en este).

    Alternativamente, usted puede establecer mediante programación en el DbContext Extensión de la clase, usando el Database.Connection.ConnectionString de la propiedad. Por ejemplo:

    De la aplicación.config:

    <!-- More.... -->
    <!-- You can do this in a declarative way -->
    <connectionStrings>
      <add name="YourDBName"
           connectionString="<Your connection string here>"
           providerName="<Your provider here>" />
    </connectionStrings>
    <!-- More.... -->

    DatabaseContext.cs:

    public class DatabaseContext : DbContext
        //Link it with your config file
        public DatabaseContext () : base("YourDBName") 
        {
            //And/Or you can do this programmatically.
            this.Database.Connection.ConnectionString = "<Your Connection String Here>";
            //More Stuff.....
        }
    }
    • Debe ser aceptado como respuesta.
    • Me gusta esta respuesta también. Tiene más sentido para mí como un novato con EF; el uso de lenguaje adecuado para describir lo que está sucediendo. El otro explicaciones no son claras en cuanto a qué es exactamente la nomenclatura de la DB.
  4. 0

    De referencia, aquí está cómo hacerlo en el código mediante VB.NET:

    Public Class DatabaseContext : Inherits DbContext
    
    Public Property Users As DbSet(Of User)
    
    Public Sub New()
        MyBase.New("NewFileName.sdf")
    End Sub

    Final De La Clase

Dejar respuesta

Please enter your comment!
Please enter your name here