public Constructor(string DBName)
{
DB = DBName;
}
[Database(Name = DB)]
public class Database5 : DataContext
{
…
}
有没有办法让我可以在DB变量中使用值来提供类似上面的代码片段的DB名称而不会出错?
之所以我想这样做是因为我的项目需要每天生成一个新数据库(数据库具有相同的表但名称不同)。
答案 0 :(得分:0)
假设您需要每天根据名称创建一个新数据库。您可以简单地为应用程序的db上下文使用构造函数重载,如下所示:
public class AppDbContext : DbContext
{
public AppDbContext(string databaseNameOrConnectionString)
: base(databaseNameOrConnectionString)
{
// This line creates a new database if it does not exist on the database server.
// Just ensure that you pass a new name periodically to get a new database.
Database.SetInitializer<AppDbContext>(new CreateDatabaseIfNotExists<AppDbContext>());
}
// other overloads of the db context, if needed
}
然后你可以像这样使用构造函数:
var dbContext = new AppDbContext("Database5");
您必须提供一种机制来定期更改数据库名称并在创建AppDbContext