internal void Initialize()
 {
     if (WasInitialized)
     {
         return;
     }
     WasInitialized = true;
     if (ActualDbVersion > CurrentDbVersion)
     {
         // Updating of the database must be done in another connection,
         // otherwise the added entities first time will be retrieved from cache but not from the database.
         // It can lead to a state when calculated fields are not filled first time,
         // and when LazyLoading = false the entities will be full retrieved.
         //
         using (var db = Create())
         {
             db.UpgradeDatabase(CurrentDbVersion, ActualDbVersion);
             db.Attach(new DbInfo {
                 Name = DbInfo.DbVersionParam, Value = ActualDbVersion.ToString()
             }, CurrentDbVersion == 0);
             db.SaveChanges();
         }
     }
 }
Example #2
0
 internal void Initialize()
 {
     if (WasInitialized)
     {
         return;
     }
     WasInitialized = true;
     if (ActualDbVersion > CurrentDbVersion)
     {
         // Обновление базы данных необходимо делать в другом подключении,
         // иначе добавленные объекты при первом обращении к БД возвращаются не из базы и не проксированные.
         // В частности это приводит к тому, что в первый раз вычислимые атрибуты этих объектов могут быть не заполнены,
         // а при LazyLoading = false могут быть возвращены объекты полностью.
         //
         using (var db = Create())
         {
             db.UpgradeDatabase(CurrentDbVersion, ActualDbVersion);
             db.Attach(new DbInfo {
                 Name = DbInfo.DbVersionParam, Value = ActualDbVersion.ToString()
             }, CurrentDbVersion == 0);
             db.SaveChanges();
         }
     }
 }