Codefirst Initializer Seed из источника данных - PullRequest
1 голос
/ 01 марта 2011

Хотя Code First Database Evolution еще не доступен, я все же хотел бы сохранить некоторые базовые данные в моей базе данных даже во время разработки. Моя идея - хранить данные в резервной базе данных и автоматически считывать их в базу данных при инициализации.

Можно ли сделать что-то подобное?

class MyInitializer : DropCreateDatabaseIfModelChanges<MyDatabase>
{

    protected override void Seed(MyDatabase context)
    {
        var questions = new List<Question>
        {

            foreach(var row in MySecondDataSource)
            {
              new Question 
              {
                QuestionID = row.Column["a"]
                QuestionText = row.Column["b"],
                SortOrder = row.Column["c"],
                QuestionType = questionTypes.Find(q => q.QuestionTypeID == row.Column["d"]),
                Category = categories.Find(c => c.CategoryID == row.Column["e"]),
                Target = targets.Find(t => t.TargetID == row.Column["f"]),
                Unit = units.Find(u => u.UnitID == row.Column["g"])
              };
            }
        };

        questions.ForEach(q => context.Questions.Add(q));

Или какие-либо другие идеи о том, как сохранить данные или сохранить их в базе данных после ее удаления?

...