я могу запросить контекст изнутри метода инициализации контекста - PullRequest
1 голос
/ 17 мая 2011

Я инициализирую свою базу данных из набора сценариев sql.Затем я хотел бы запросить данные при добавлении дополнительных данных, чтобы соотношения внешних ключей совпадали.И все же в моем примере переменная «painting» всегда обнуляется, даже если данные есть.Возможно ли запросить данные внутри этого начального метода?Нужно ли фиксировать данные или что-то в этом роде?

class ArtConvergenceInitializer : DropCreateDatabaseIfModelChanges<ArtConvergence>
    {
        protected override void Seed(ArtConvergence context)
        {            

            var seedfilePath = System.Configuration.ConfigurationManager.AppSettings["PathToInitializationScript"].ToString();
            foreach(var file in System.IO.Directory.EnumerateFiles(seedfilePath,"*.sql"))
            {
                var sqlCommand = System.IO.File.ReadAllText(file);
                context.Database.ExecuteSqlCommand(sqlCommand);
                context.SaveChanges();
            }

            var painting = context.Mediums.Where(x => x.MediumType == "Painting" && x.SpecificMedium == null).FirstOrDefault();
            var oilOnCanvas = context.Mediums.Where(x => x.MediumType == "Painting" && x.SpecificMedium == "oil on canvas").FirstOrDefault();              

        }

1 Ответ

0 голосов
/ 18 мая 2011

Как только вы используете прямые SQL-скрипты, вам не составит труда написать SQL-скрипт, который будет корректно вставлять данные с существующими внешними ключами.Я делал это много раз.Держите логику инициализации вместе.

...