我有很多(大約一千)FluentMigrator
Migration
類在我們的構建服務器上開始超時。如何在C#中執行時間記錄器類包裝器
對於那些誰也不會FluentMigrator
工作 - 遷移以這樣的方式工作,所有的遷移從有對數據庫遷移運行SQL腳本Up()
和Down()
方法Migration
類繼承 - 簡單和容易。
現在懶惰我已經引入了一個LoggingMigration
類,它記錄了遷移開始運行的時間(並且簡單地將該項目的VS中的: Migration
替換爲: LoggingMigration
)。
public class LoggingMigration : Migration
{
public DateTime StartTime { get; private set; }
public LoggingMigration()
{
this.StartTime = DateTime.Now;
Console.WriteLine("Start {0} - TIME: {1:yyyy-MM-dd HH:mm:ss.fff}", this.GetType().Name, StartTime);
}
public override void Up()
{
}
public override void Down()
{
}
}
我想也做長期的遷移正在運行如何使它更容易看到哪些遷移多久的時間。
我在考慮使用析構函數一樣的:
~LoggingMigration()
{
Console.WriteLine("End(?) {0} - TIME: {1}", this.GetType().Name, DateTime.Now.Subtract(StartTime));
}
但事情僅僅是volatile and unpredictable
如何添加,將在後子類飾面Up()
方法運行機制? 或者其他一些可以完成這項工作的方式?
嗨馬特,我不能修改移民類它來自FluentMigrator但我可以介紹是從遷移繼承類(如LoggingMigrator)。您建議在所有當前遷移中用'OverrideUp()'替換'Up()'是否正確? –
@MatasVaitkevicius沒錯。無論是或者你可以使用自定義屬性,但我會堅持面向對象的方式。 –