【发布时间】:2013-07-19 19:11:15
【问题描述】:
我的种子方法在本地机器上运行时运行良好,但是当我将代码推送到 appharbor 时,种子无法正常工作。
这是我的连接字符串:
<connectionStrings>
<add name="FinalProjectContext" connectionString="Data Source=.\SQLEXPRESS;User
Id=user;Password=pass;initial catalog=MyContextDB;"
providerName="System.Data.SqlClient" />
</connectionStrings>
我的种子方法在 Configuration 文件中用于迁移:
public Configuration()
{
AutomaticMigrationsEnabled = true;
AutomaticMigrationDataLossAllowed = true;
}
protected override void Seed(MyContext context)
{
//add data
}
我从上下文类中调用我的种子方法,在 OnModelCreating: 内:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
Database.SetInitializer(new MigrateDatabaseToLatestVersion<MyContext, Configuration>());
}
编辑
【问题讨论】:
-
AppHarbor 支持 SQLExpress??
-
@JayC 我不知道,但 appharbor 不应该为他们替换我的连接字符串,我只需要在 sql 别名字段中输入我的上下文名称?
-
@SOfanatic 我认为您需要为 MSSQL 服务器设置正确的连接名称并设置“应用程序/插件”(无论 AppHarbor 怎么称呼它)。只有这样他们才会替换连接字符串。对此的快速测试是尝试打印
ConfigurationManager.ConnectionStrings["MyContext"].ConnectionString(使用 Response.Write 或一些控制器/视图)。 -
@Alxandr,我会试试这个并报告,现在我已经添加了我正在使用的插件及其设置的屏幕截图。
-
@SOfanatic 从起始页(底部)转到此处:imgur.com/OAbp6mS。您应该看到连接字符串和连接字符串别名。尝试将连接字符串别名设置为“MyContext”。
标签: c# asp.net-mvc ef-code-first appharbor entity-framework-migrations