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

C# 在表之间迁移数据的整洁方式?,c#,asp.net,sql,database,entity-framework,C#,Asp.net,Sql,Database,Entity Framework,有没有一种方法可以使用EF和/或C代码将数据迁移到新表(和实体)中,或者在EF迁移中必须使用一些简单的老式SQL 我的情况如下: 我有一个现有的OldCarLog类,用于记录用户在我们称之为Car的实体上的操作,但现在我想允许登录其他实体,我创建了一个抽象/通用类BrandSpankingNewActivityLog,以方便记录任何类。所以我有Car\u Log:BrandSpankingNewActivityLog以及PartInfo\u Log和repair procedure\u Log

有没有一种方法可以使用EF和/或C代码将数据迁移到新表(和实体)中,或者在EF迁移中必须使用一些简单的老式SQL

我的情况如下:

我有一个现有的
OldCarLog
类,用于记录用户在我们称之为
Car
的实体上的操作,但现在我想允许登录其他实体,我创建了一个抽象/通用类
BrandSpankingNewActivityLog
,以方便记录任何类。所以我有
Car\u Log:BrandSpankingNewActivityLog
以及
PartInfo\u Log
repair procedure\u Log

我想把所有的
旧行车日志
实体转换成它们的替换
车辆日志
通过这种方式,我可以将
OldCarLog
重构为
Car\u Log
,并为新实现的日志提供一个标准API,而不必使用
OldCarLog
来混淆从
BrandSpankingNewActivityLog
派生的任何日志

公共抽象类BrandSpankingNewActivityLog
{
公共长Id{get;set;}
公共日期时间活动时间{get;set;}
公共虚拟用户用户{get;set;}
公共虚拟实体{get;set;}
}
公共级汽车日志:BrandSpankingNewActivityLog
{
//这里没什么可看的!
}
公车
{
公共长Id{get;set;}
//其他你不关心的汽车信息。。。。
//雅达,雅达,雅达。。。。
公共虚拟ICollection{get;set;}
}

这些都有意义吗

DbMigration::Up()
中,使用
SQL(“TODO:Add SQL”)进行调用方法


我以前做过,我只是希望避免再次这样做,最好使用一些C#逻辑/类/类型安全性,而不是使用不太可靠的SQL。
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;}
}