如何在Code First中指定数据库名称?

Sam*_*Sam 53 entity-framework-4 ef-code-first

如何告诉EF如何命名数据库以及将其放在何处?

如果Web.Config中没有连接字符串,它会尝试将其放在本地SQLEXPRESS服务器中,但我想将它放在已知的SQL Server上,并将其命名为我想要的.有什么建议?

ami*_*t_g 56

在app.config/web.config中创建一个与上下文同名的连接字符串,EF将使用该DB.


fer*_*der 23

如何使用EF的不同连接字符串名称

EF将在连接字符串中使用数据库的名称.如果要将连接字符串的名称与EF分离,则需要将连接字符串提供给构造函数.例:

public class DatabaseContext : DbContext
{
    public DatabaseContext() 
      : base(ApplicationParameters.ConnectionStringName)
    {
    }

    public DatabaseContext(string connectionStringName)
      : base(connectionStringName)
    {
    }

}
Run Code Online (Sandbox Code Playgroud)


Ami*_*eri 17

在班上 :

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; }
}
Run Code Online (Sandbox Code Playgroud)

在web.config中:

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

谢谢ferventcoder.
参考=> http://brandonclapp.com/connection-strings-with-entity-framework-5-code-first/


car*_*3rg 7

或者,您可以在DbContext构造函数中设置名称.

  • ......怎么做? (7认同)

Nic*_*kis 5

正如已经提到的,您可以在应用程序的配置文件中使用名称(假设为"YourDBName")声明连接字符串,然后将其传递给DbContext基本构造函数调用(我会将其添加到答案中以提供完整的答案-已经对此给出了很好的答案)。

或者,您可以DbContext使用Database.Connection.ConnectionString属性在您的扩展类中以编程方式设置它。例如:

应用程序配置:

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

数据库上下文.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.....
    }
}
Run Code Online (Sandbox Code Playgroud)