我想使用c#创建一个新数据库。我只想从用户界面传递数据库名称,对于该数据库名称,我想运行数据库的sql脚本,为新数据库创建该脚本的相同模式。
答案 0 :(得分:2)
我没有你想要做的事情,但我已经做了一些功能,将一些默认数据播种到主表。
// sql文件位置
private static readonly string IndexScriptSeedMasterDataLocation = "SqlSeedMasterData.sql";
在我的功能中:
private static void SeedMasterData ( IpDataContext context, string databaseName)
{
context.Database.CreateIfNotExists();
var sqlContent = Content(IndexScriptSeedMasterDataLocation);
var modifiedSqlScript = sqlContent.Replace("@DatabaseName", databaseName);
context.Database.ExecuteSqlCommand(modifiedSqlScript);
}
//内容功能:
private static string Content(string fileLocation)
{
using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(fileLocation))
{
if (stream == null)
{
return string.Empty;
}
var streamReader = new StreamReader(stream);
return streamReader.ReadToEnd();
}
}