如何在Linq

时间:2016-04-05 02:32:56

标签: c# mysql linq

public Constructor(string DBName)
{
   DB = DBName;
}
[Database(Name = DB)]
public class Database5 : DataContext
{
    …
}

有没有办法让我可以在DB变量中使用值来提供类似上面的代码片段的DB名称而不会出错?

之所以我想这样做是因为我的项目需要每天生成一个新数据库(数据库具有相同的表但名称不同)。

1 个答案:

答案 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

时使用它