我有很多(大约一千个)FluentMigrator
Migration
个类开始在我们的构建服务器上超时。
对于那些没有使用FluentMigrator
的人 - 迁移的工作方式使您的所有迁移都从Migration
类继承,该类具有Up()
和Down()
方法为db迁移运行SQL脚本 - 简单易行。
现在我很懒,我引入了一个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()
方法之后运行的机制?
或者其他一些方式来完成这项工作?
答案 0 :(得分:1)
如何覆盖受保护的方法而不是公共方法:
<h1 [innerHTML]="date ? (date | date) : '<i>Date not set</i>'"></h1>
答案 1 :(得分:-1)
为迁移类创建装饰器。 它看起来像是:
<Storyboard x:Key="OpacityUpAnim">
<DoubleAnimation Storyboard.TargetProperty="Opacity" From="0" To="1" Duration="0:0:1.3">
<DoubleAnimation.EasingFunction>
<CubicEase EasingMode="EaseOut" />
</DoubleAnimation.EasingFunction>
</DoubleAnimation>
</Storyboard>
装饰者模式的例子: http://www.dofactory.com/net/decorator-design-pattern