您可以覆盖DbMigrationsConfiguration的种子方法或创建迁移。
然后,您应该能够执行可以从aspnet_regsql.exe生成的SQL或执行aspnet_regsql.exe,以获得您的权限。
更新1:
我落得这样做如下:
Add-Migration AspNetRegSql
public partial class AspNetRegSql : DbMigration
{
public override void Up()
{
Migrate(false);
}
public override void Down()
{
Migrate(true);
}
private static void Migrate(bool down)
{
var action = down ? "R" : "A";
var connectionstring = ConfigurationManager.ConnectionStrings["DataContext"];
var arguments = string.Format(@"-Q -C ""{0}"" -{1} mrp", connectionstring, action);
var processStartInfo = new ProcessStartInfo
{
WorkingDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase).Replace(@"file:\", string.Empty),
FileName = "aspnet_regsql.exe",
Arguments = arguments,
CreateNoWindow = true,
WindowStyle = ProcessWindowStyle.Hidden
};
using (var process = Process.Start(processStartInfo))
{
process.WaitForExit();
}
}
}
然后补充说:“aspnet_regsql.exe的”我的项目,改变建设行动“复制,如果新”。
更新2:
我不知道,NSGaga贴库的 - 我还没有看,但会建议您也考虑一下。
更新3:
一些有用的链接: - 这是一个基于代码的自定义提供商
看起来一样好 - 也许这就是最好创建数据库第一次当放置在“种子”,即(或迁移必须是一个初始) - 并因可能的权限问题(我没有尝试过,但似乎是运行自定义批处理文件的一个非常好的场景,而且更通用) - 也就是说它更容易控制它形成种子 - 比起例如PM控制台通常是从PM开始的(坦率地说,我不知道在某些情况下可能会如何泛滥 - 尽管可能应该起作用 - 我通常以管理员身份运行VS,所以很可能不会看到任何问题)。 – NSGaga 2012-04-28 17:35:46