8

場合によっては、サンプル データは重要ですが、関連するテーブルが多数あるために生成するのが面倒です。したがって、Entity Framework Code First では、それらを DropCreateDatabaseIfModelChanges::Seed() に挿入するのがエレガントな方法だと思います。

しかし、既存のデータをデータベースから文字列にエクスポートして、poco オブジェクトを挿入する C#/VB 文として戻す方法はありますか?

機能する場合は、データを適切にバックアップしたり、シーンごとに複数の .cs に保存したり、必要に応じてそれらを切り替えてテストを改善したりするために使用できます。

データベースは次のコードとしてエクスポートされます:

var students = new List<Student>
{
    new Student { FirstMidName = "Carson",   LastName = "Alexander", },
    new Student { FirstMidName = "Meredith", LastName = "Alonso",    },
    new Student { FirstMidName = "Arturo",   LastName = "Anand",     },
    // ...
};
students.ForEach(s => context.Students.Add(s));
context.SaveChanges();
4

1 に答える 1

1

@Lukeがコメントで示唆したように。最善の方法は、シード データの Json ファイルを生成することです。

この記事では、SQL クエリから Jsonを生成する簡単な方法を見つけることができます。

次に、必要なのは、Newtonsoft.Json でそれらを読み取ることだけです。

例えば

var countriesStream = new StreamReader(HostingEnvironment.MapPath("jsonFile.json"));
try
{
    countriesList = JsonConvert.DeserializeObject<List<Country>>(countriesStream.ReadToEnd());
}
于 2015-12-21T18:26:09.697 に答える