6
votes

Y a-t-il un moyen de montrer la sortie lors de la base de données de mise à jour?

Je gère une semence assez grande comme test de stress et je me demande s'il est possible de montrer une sortie à une console.

J'aimerais montrer les entrées restantes ou pourcentage terminées, ou quoi que ce soit vraiment.

existe-t-il un moyen d'écrire sur la console de la console ou du package Manager lors de la base de données de mise à jour?


3 commentaires

Votre type de sortie d'application est une bibliothèque ou une console?


Ma candidature est une bibliothèque.


Juste intéressant, avez-vous réussi à le faire?


3 Réponses :


7
votes

Y a-t-il un moyen d'écrire sur la console ou la console de gestionnaire de paquets Pendant la base de données de mise à jour? P>

Je vais décrire deux options disponibles pour vous hors de la boîte: strong> p>

1. console.writeline code> Solution: strong> p>

Soit si vous exécutez votre code à partir d'une application Console forte> ou d'une bibliothèque de tout autre type d'application (par exemple ASP.NET), vous pouvez utiliser la fonction console.writeline code>, mais la question principale est s'il y a un em> à la console code> sortie. p>

Si rien n'écoute la console, profitez de la WIN32.Aloconsole () Code> Strong> Windows Fonction API afin d'ouvrir un em> em> strud>: p> xxx pré>

usage: strong> p >

#if DEBUG

#endif


3 commentaires

Que voulez-vous dire par écoute? J'ai essayé d'exécuter la console.writeine, mais rien n'apparaît lorsque j'exécute la graine de la base de données de mise à jour.


Listening : Vous écrivez à la console, mais la question s'il existe une fenêtre de console ouverte pour afficher vos écrivies.


Cela a fonctionné super! Merci! Si quelqu'un d'autre cherche à le faire dans WPF, comme j'étais, consultez la réponse ici



0
votes

type de solution hackish utilisant l'interception EF 6.0 Si vous pouvez exécuter vos mises à jour à partir d'une application personnalisée.

protected override void Seed(EfProgress.DatabaseEntities context)
{
    var interceptor = new EfProgress.Program.ProgressInterceptor() { TotalCount = 10 };
    DbInterception.Add(interceptor);
    for (int i = 0; i < 10; i++)
    {
        var entity = context.EntitySet.Create();
        entity.Property1 = "entity " + i;
        context.EntitySet.Add(entity);
    }

    context.SaveChanges();

    DbInterception.Remove(interceptor);
}


0 commentaires

3
votes

Si je vous comprends bien, vous devez ajouter un drapeau '-verbose' pour mettre à jour la commande-base de données: xxx


2 commentaires

Spécifiez le drapeau "-verbose" pour afficher les instructions SQL appliquées à la base de données cible.


Comment enregistrer cette sortie dans un fichier