2017-06-02 10 views
0

update-databaseを実行するたびに、構成ファイルのシードデータをCSVにエクスポートしたいと考えています。私の設定ファイルがシードデータをEntity FrameworkのCSVにエクスポートすることはできますか?

public sealed class Configuration : Configuration<FooDbContext> 
{ 
    public Configuration() 
    { 
     AutomaticMigrationsEnabled = false; 
     CodeGenerator = new BaseMigrationCodeGenerator(); 
    } 

    protected override void Seed(FooDbContext context) 
    { 
     FooSeed.AddSeed(context); 
     context.SaveChanges(); 
    } 
} 

かなり標準である私は、そのデータベースに保存されることに加えて、CSV形式で(AddSeed、フー・オブジェクトのリストに含まれている)、このデータを出力したいです。私はエンティティ・フレームワークにはこれが可能かどうかを知るために十分な知識はありません。

答えて

1

はい可能です。レコードをシードするときに、同時にレコードをCSVに書き込むことができます。

参照、以下:

https://www.tutorialspoint.com/entity_framework/entity_framework_seed_database.htm

public class MyContext : DbContext { 

    public MyContext() : base("name=MyContextDB") { 
     Database.SetInitializer<MyContext>(new UniDBInitializer<MyContext>()); 
    } 

    public virtual DbSet<Course> Courses { get; set; } 
    public virtual DbSet<Enrollment> Enrollments { get; set; } 
    public virtual DbSet<Student> Students { get; set; } 

    private class UniDBInitializer<T> : DropCreateDatabaseAlways<MyContext> { 

     protected override void Seed(MyContext context) { 

     IList<Student> students = new List<Student>(); 

     students.Add(new Student() { 
      FirstMidName = "Andrew", 
      LastName = "Peters", 
      EnrollmentDate = DateTime.Parse(DateTime.Today.ToString()) 
     }); 

     students.Add(new Student() { 
      FirstMidName = "Brice", 
      LastName = "Lambson", 
      EnrollmentDate = DateTime.Parse(DateTime.Today.ToString()) 
     }); 

     students.Add(new Student() { 
      FirstMidName = "Rowan", 
      LastName = "Miller", 
      EnrollmentDate = DateTime.Parse(DateTime.Today.ToString()) 
     }); 

     foreach (Student student in students) 
     context.Students.Add(student); 
     // write to CSV 
     WriteToCSV(Students); 
     base.Seed(context); 
     } 

     private void WriteToCSV(Students students) 
     { 
     ...code to write to csv 
     } 
    } 
} 
関連する問題