def _load(self, event):
if not event.data:<EOL><INDENT>return<EOL><DEDENT>context = self.context()<EOL>schema = self.schema()<EOL>dbname = schema.dbname()<EOL>clean = {}<EOL>for col, value in event.data.items():<EOL><INDENT>try:<EOL><INDENT>model_dbname, col_name = col.split('<STR_LIT:.>')<EOL><DEDENT>except ValueError:<EOL><INDENT>col_name = col<EOL>model_dbname = dbname<EOL><DEDENT>try:<EOL><INDENT>column = schema.column(col_name)<EOL><DEDENT>except orb.errors.ColumnNotFound:<EOL><INDENT>column = None<EOL><DEDENT>if model_dbname != dbname or (column in clean and isinstance(clean[column], Model)):<EOL><INDENT>continue<EOL><DEDENT>elif not column:<EOL><INDENT>self.__preload[col_name] = value<EOL><DEDENT>else:<EOL><INDENT>value = column.dbRestore(value, context=context)<EOL>clean[column] = value<EOL><DEDENT><DEDENT>with WriteLocker(self.__dataLock):<EOL><INDENT>for col, val in clean.items():<EOL><INDENT>default = val if not isinstance(val, dict) else val.copy()<EOL>self.__values[col.name()] = (default, val)<EOL>self.__loaded.add(col)<EOL><DEDENT><DEDENT>if self.processEvent(event):<EOL><INDENT>self.onLoad(event)<EOL><DEDENT>
Processes a load event by setting the properties of this record
to the data restored from the database.

:param event: <orb.events.LoadEvent>