public override void Persist(Net.Vpc.Upa.Persistence.EntityExecutionContext executionContext, Net.Vpc.Upa.PersistenceState status) /* throws System.Exception, Net.Vpc.Upa.Exceptions.UPAException */ { Net.Vpc.Upa.Entity entity = (Net.Vpc.Upa.Entity)@object; Net.Vpc.Upa.Impl.Persistence.DefaultPersistenceStore store = (Net.Vpc.Upa.Impl.Persistence.DefaultPersistenceStore)executionContext.GetPersistenceStore(); if ((entity.GetPrimaryFields()).Count > 0) { log.TraceEvent(System.Diagnostics.TraceEventType.Verbose, 60, Net.Vpc.Upa.Impl.FwkConvertUtils.LogMessageExceptionFormatter("Commit {0} / {1} : found {2}, persist", null, new object[] { @object, typedObject, status })); Net.Vpc.Upa.Persistence.UConnection b = executionContext.GetConnection(); foreach (Net.Vpc.Upa.PrimitiveField primaryField in entity.GetPrimitiveFields(Net.Vpc.Upa.Filters.Fields.Id())) { Net.Vpc.Upa.Impl.Persistence.ColumnDesc cd = store.LoadColumnDesc(primaryField, b.GetMetadataAccessibleConnection()); if (cd.IsNullable() != null && (cd.IsNullable()).Value) { b.ExecuteNonQuery(store.GetAlterTableAlterColumnNullStatement(primaryField, false), null, null); } } b.ExecuteNonQuery(store.GetCreateTablePKConstraintStatement(entity), null, null); } }