有没有办法使用EF和/或C#代码将数据迁移到新表(和实体),还是我必须在EF-Migration中使用一些普通的老式SQL?
这是我的情况:
我有一个现有的OldCarLog
类,用于记录我们称之为Car
的实体的用户操作,但现在我想允许登录其他实体并创建了一个摘要/ generic class BrandSpankingNewActivityLog<TEntity>
使任何类的日志记录变得容易。我有Car_Log : BrandSpankingNewActivityLog<Car>
以及PartInfo_Log
和RepairProcedure_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;}
}
这一切都有意义吗?
答案 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