public override void UpdateDatabaseAfterUpdateSchema() { base.UpdateDatabaseAfterUpdateSchema(); var uniqueName = new ExternalApplicationModelStore().Name; if (new QueryModelDifferenceObject(ObjectSpace.Session).GetActiveModelDifference(uniqueName, "ExternalApplication") == null) { var modelDifferenceObject = new ModelDifferenceObject(ObjectSpace.Session).InitializeMembers("ExternalApplication", "ExternalApplication", uniqueName); modelDifferenceObject.PersistentApplication.ExecutableName = "ExternalApplication.Win.exe"; var modelApplicationBuilder = new ModelLoader(modelDifferenceObject.PersistentApplication.ExecutableName); var model = modelApplicationBuilder.GetLayer(typeof(ExternalApplicationModelStore)); modelDifferenceObject.CreateAspects(model); ObjectSpace.CommitChanges(); } }
public override void UpdateDatabaseAfterUpdateSchema() { base.UpdateDatabaseAfterUpdateSchema(); var uniqueName = new ExternalApplicationModelStore().Name; var session = ((XPObjectSpace)ObjectSpace).Session; if (new QueryModelDifferenceObject(session).GetActiveModelDifference(uniqueName, "ExternalApplication") == null) { var modelDifferenceObject = new ModelDifferenceObject(session).InitializeMembers("ExternalApplication", "ExternalApplication.Win", uniqueName); modelDifferenceObject.PersistentApplication.ExecutableName = "ExternalApplication.Win.exe"; var modelApplicationBuilder = new ModelLoader(modelDifferenceObject.PersistentApplication.ExecutableName,XafTypesInfo.Instance); InterfaceBuilder.SkipAssemblyCleanup = true; var model = modelApplicationBuilder.GetLayer(typeof(ExternalApplicationModelStore), false,info => info.AssignAsInstance()); InterfaceBuilder.SkipAssemblyCleanup = false; modelDifferenceObject.CreateAspects(model); ObjectSpace.CommitChanges(); } }