在更新数据库期间有没有办法显示输出?

Cha*_*s W 5 c# entity-framework

我正在运行一个相当大的种子作为压力测试,我想知道是否可以向控制台显示输出.

我想显示其余的条目或完成百分比,或者其他任何内容.

有没有办法在update-database期间写入控制台或包管理器控制台?

Yai*_*vet 6

有没有办法在update-database期间写入控制台或包管理器控制台?

我将描述两种可供您选择的选项:

1. Console.WriteLine解决方案:

要么,如果你从一个运行代码控制台应用程序或从图书馆任何其他应用程序类型(例如asp.net),你可以使用Console.WriteLine的功能,但主要的问题是,如果有一个听众Console输出.

如果没有任何内容正在侦听控制台,那么请利用Win32.AllocConsole()Windows API函数打开侦听器:

using System.Runtime.InteropServices;
[DllImport("kernel32")]
static extern bool AllocConsole();
Run Code Online (Sandbox Code Playgroud)

用法:

AllocConsole();
//now you can call: Console.WriteLine();
Console.WriteLine("Total number of records left to seed:{0}", total);
Run Code Online (Sandbox Code Playgroud)

考虑使用以下指令包装上面的代码,以避免在生产环境中出现意外的痛苦:

#if DEBUG

#endif
Run Code Online (Sandbox Code Playgroud)

说明:

AllocConsole初始化新控制台的标准输入,标准输出和标准错误句柄.标准输入句柄是控制台输入缓冲区的句柄,标准输出和标准错误句柄是控制台屏幕缓冲区的句柄.要检索这些句柄,请使用GetStdHandle函数.

2. Debug.Print解决方案:

Debug.Print在调试模式下使用该功能.使用它,您可以将任何想要的内容写入Visual Studio的DEBUG输出窗口:

调试 - > Windows - >输出 - >显示输出 - >调试

那么,您是否考虑使用NLogLOG4NET将此信息记录到某个文本文件中?