Как сначала указать имя базы данных в коде?
Как мне сказать EF, как назвать базу данных и куда ее поместить?
Если в Сети нет строки подключения.Config, он пытается поместить его на локальный сервер SQLEXPRESS, но я хочу поместить его на известный SQL-сервер и назвать его тем, что я хочу. Есть предложения?
7 ответов:
создать строку подключения в приложении.config / web.конфигурация с тем же именем, что и контекст, и EF будет использовать эту БД.
Как использовать другое имя строки подключения с EF
EF будет использовать имя базы данных в строке подключения. Если вы хотите отделить имя строки подключения от EF, вам необходимо предоставить строку подключения конструктору. Пример:
public class DatabaseContext : DbContext { public DatabaseContext() : base(ApplicationParameters.ConnectionStringName) { } public DatabaseContext(string connectionStringName) : base(connectionStringName) { } }
класс :
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; } }
в интернете.config:
<connectionStrings> <add name="YourConnectionName" connectionString="Data Source=A-PC\SQLEXPRESS; Initial Catalog=MyDataBase; Integrated Security=True" providerName="System.Data.SqlClient" /> </connectionStrings>
спасибо ferventcoder.
Ref = > http://brandonclapp.com/connection-strings-with-entity-framework-5-code-first/
как уже упоминалось, вы можете объявить строку подключения внутри файла конфигурации вашего приложения с именем (скажем "YourDBName") и затем передать это в
DbContext
вызов базового конструктора (я добавлю это к ответу для предоставления полного ответа - отличные ответы уже даны на это).кроме того, вы можете установить это программно в
DbContext
класс расширения, используяDatabase.Connection.ConnectionString
собственность. Для пример:приложение.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..... } }