इकाई की रूपरेखा 6 का उपयोग करना, मैं DbMigrationsConfiguration.CommandTimeout
संपत्ति का उपयोग कर माइग्रेशन के लिए एक लंबे समय तक टाइमआउट निर्धारित किया है।
इस तरह
:
मेरी Global.asax.cs में:
protected void Application_Start()
{
DatabaseMigrationConfig.Register();
//etc
}
मेरे DatabaseMigrationConfig
कक्षा:
public class DatabaseMigrationConfig
{
internal static void Register()
{
using (var context = new MyContext(Config.ConnectionStringMigrations))
{
Database.SetInitializer(new MigrateDatabaseToLatestVersion<MyContext,
Migrations.Configuration>());
context.Database.Initialize(false);
}
}
}
मेरे Migrations.Configuration
वर्ग:
using System.Data.Entity.Migrations;
internal sealed class Configuration : DbMigrationsConfiguration<MyContext>
{
public Configuration()
{
AutomaticMigrationsEnabled = false;
AutomaticMigrationDataLossAllowed = false;
CommandTimeout = 360;// <----- 6 minute timeout!
}
}
refe rences:
Migrations: timeout error in Update-Database commands DbMigrationsConfiguration.CommandTimeout Property
ध्यान दें कि मैं भी माइग्रेशन के दौरान एक अलग कनेक्शन स्ट्रिंग का उपयोग करें - उपयोगकर्ता वेबसाइट की तुलना में अधिक अनुमतियाँ और कनेक्शन समयबाह्य अब है। इस सवाल देखें - How to use a different connection string (but same database) for migrations
बनाया समस्या के लिए निर्दिष्ट समय समाप्ति के लिए अनुमति के बारे में पूछ माइग्रेशन: https://github.com/aspnet/EntityFramework/issues/6613 –
ध्यान दें कि ये सेकंड हैं, इसलिए यहां सेट टाइमआउट लगभग दो दिन है। – BobbyTables
@ बॉबीबीटेबल्स हां - वास्तविक संख्या प्रश्न से आती है, लेकिन आपका बिंदु मान्य है। –