C# 在表之间迁移数据的整洁方式?
有没有一种方法可以使用EF和/或C代码将数据迁移到新表(和实体)中,或者在EF迁移中必须使用一些简单的老式SQL 我的情况如下: 我有一个现有的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
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;}
}