在表之间迁移数据的整洁方式?

时间:2014-07-10 14:39:32

标签: c# asp.net sql database entity-framework

有没有办法使用EF和/或C#代码将数据迁移到新表(和实体),还是我必须在EF-Migration中使用一些普通的老式SQL?

这是我的情况:

我有一个现有的OldCarLog类,用于记录我们称之为Car的实体的用户操作,但现在我想允许登录其他实体并创建了一个摘要/ generic class BrandSpankingNewActivityLog<TEntity>使任何类的日志记录变得容易。我有Car_Log : BrandSpankingNewActivityLog<Car>以及PartInfo_LogRepairProcedure_Log

我想将所有OldCarLog个实体转换为替代Car_Log 通过这种方式,我可以将OldCarLog重构为Car_Log并为新实现的日志提供标准API,而不会让OldCarLog与来自BrandSpankingNewActivityLog<TEntity>的任何日志混淆。

public abstract class BrandSpankingNewActivityLog<TEntity>
{
    public long Id { get; set; }
    public DateTime ActivityTime { get; set; }
    public virtual User User { get; set; }
    public virtual TEntity Entity { get; set; }
}

public class Car_Log : BrandSpankingNewActivityLog<Car>
{
    //Nothing to see here!
}

public class Car
{
    public long Id {get; set;}
    //Other car info you don't care about ....
    //Yada, Yada, Yada....
    public virtual ICollection<Car_Logs> {get;set;}
}

这一切都有意义吗?

1 个答案:

答案 0 :(得分:0)

DbMigration::Up()中使用SQL("TODO: Add SQL");方法拨打电话。

http://msdn.microsoft.com/en-us/library/system.data.entity.migrations.dbmigration.sql(v=vs.113).aspx