EF6でコードからMigrationするときにログする方法
5509 ワード
概要
EF6でコードからMigrationするときに、Migrationの実行内容を見たいときがあります。
その方法です。
やること
1. MigrationsLoggerを継承したロギングクラスを作成します。以下はConsoleに出力する例です。
MyLogger.cs
public class MyLogger : System.Data.Entity.Migrations.Infrastructure.MigrationsLogger
{
public override void Info(string message)
{
System.Console.WriteLine($"[Info]{message}");
}
public override void Verbose(string message)
{
System.Console.WriteLine($"[Verb]{message}");
}
public override void Warning(string message)
{
System.Console.WriteLine($"[Warn]{message}");
}
}
2. MigrationLoggingDecoratorを生成してUpdate()します。
Program.cs
static void Main(string[] args)
{
var configuration = new Configuration(); // Enable-Migrationsで自動生成されたクラス
var migrator = new System.Data.Entity.Migrations.DbMigrator(configuration)
MigratorLoggingDecorator logger = new System.Data.Entity.Migrations.Infrastructure.MigratorLoggingDecorator(migrator, new MyLogger());
logger.Update();
:
:
参考URL
-
http://whiteknight.github.io/2013/01/26/efcodeonlymigrations.html
- コードからMigrationを実行する方法全般について書いてある記事
下記のstackoverflowの記事からも参照している。
-
https://stackoverflow.com/questions/24357963/dbmigrator-verbose-code-first-migration
- 同じ悩みを持ったstackoverflowの記事
- コードからMigrationを実行する方法全般について書いてある記事
下記のstackoverflowの記事からも参照している。
- 同じ悩みを持ったstackoverflowの記事
Author And Source
この問題について(EF6でコードからMigrationするときにログする方法), 我々は、より多くの情報をここで見つけました https://qiita.com/minoru-nagasawa/items/14854b015ec46ec16207著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .