Show / Hide Table of Contents

Class TableRowBase

Summary description for TableBase.

Inheritance
Object
SqlCommand
PrivateSave
TableRowBase
ListTableRow
AccessScriptRow
ActiveUserRow
AddressFormatRow
AddressRow
AmountClassGroupLinkRow
AmountClassHeadingLinkRow
AmountClassRow
AppointmentRow
AreaRow
AreaUserAssignmentRow
AreaUserInclusionRow
AssociateGroupLinkRow
AssociateHeadingLinkRow
AssociateHistoryRow
AssociateRow
AttachmentLocationRow
AttachmentRow
AudienceConfigRow
AudienceLayoutLinkRow
AudienceLayoutRow
AudienceVisibilityRow
AutosaveRow
BaseTZLocationRow
BatchTaskDefinitionRow
BatchTaskRow
BinaryObjectLinkRow
BinaryObjectRow
BusinessGroupLinkRow
BusinessHeadingLinkRow
BusinessRow
CacheInvalidationRow
CacheTablesRow
CategoryFamilyRow
CategoryGroupLinkRow
CategoryHeadingLinkRow
CategoryMembershipRow
CategoryRow
ChatMessageRow
ChatSessionRow
ChatTopicRow
ChatTopicUserRow
CompanyDomainRow
CompanyRow
ComptrGroupLinkRow
ComptrHeadingLinkRow
ComptrRow
ConfigRow
ConfigurableScreenDeltaRow
ConnectionConfigFieldRow
ConsentPersonRow
ConsentPurposeRow
ConsentSourceRow
ContactInterestRow
ContactRow
ContIntGroupLinkRow
ContIntHeadingLinkRow
ContIntRow
CounterValueRow
CountryGroupLinkRow
CountryHeadingLinkRow
CountryRow
CredentialsRow
CreditedGroupLinkRow
CreditedHeadingLinkRow
CreditedRow
CurrencyGroupLinkRow
CurrencyHeadingLinkRow
CurrencyRow
CustCategoryRow
CustConfigRow
CustLangRow
CustomTableRow<TTableInfo>
DashboardRow
DashboardThemeRow
DashboardTileDefinitionRow
DashboardTileFieldRow
DashboardTileRow
DatabaseModelRow
DataRightRow
DbiAgentFieldRow
DbiAgentRow
DbiAgentScheduleRow
DeliveryTermsGroupLinkRow
DeliveryTermsHeadingLinkRow
DeliveryTermsRow
DeliveryTypeGroupLinkRow
DeliveryTypeHeadingLinkRow
DeliveryTypeRow
DiaryViewRow
DiaryViewRowRow
DictionaryBaseRow
DictionaryRow
DocDocumentRow
DocFolderRow
DocTmplGroupLinkRow
DocTmplHeadingLinkRow
DocTmplRow
DocumentRow
EabEntryRow
EabFolderRow
EjCategoryGroupLinkRow
EjCategoryRow
EjMessageRow
EjpackageItemRow
EjpackageRow
EjRoleRow
EjscriptDebugRow
EjscriptRow
EjselectionRow
EjselEjselRow
EjselMetaResultRow
EjselResultSetRow
EjselSourceIdlistRow
EjselSourceScriptRow
EjselSourceXmlRow
EjuserRow
ElementProfileRow
EmailAccountRow
EmailAttachmentRow
EmailFolderRow
EmailItemRow
EmailRow
ErpConfigurationRow
ErpConnectionAccessRow
ErpConnectionActorTypeRow
ErpConnectionRow
ErpConnectorRow
ErpExternalKeyRow
ErpFieldRow
ErpInternalKeyRow
ErpListItemMappingRow
ErpSyncLogRow
ExtAppGroupLinkRow
ExtAppHeadingLinkRow
ExtAppRow
ExtDatasourceRow
ExternalDocumentRow
ExternalEventRow
ExtFieldRow
ExtraFieldsRow
ExtraMenusRow
ExtraTablesEntryRow
ExtraTablesResultRow
ExtraTablesRow
ExtTableRow
FavouriteRow
FieldLabelRow
ForeignAppRow
ForeignDeviceRow
ForeignKeyRow
FormKeysRow
FormRow
FormSubmissionRow
FreeTextIndexRow
FreeTextStopWordsRow
FreeTextWordsRow
FunctionRightRoleLinkRow
FunctionRightRow
HeadingRow
HelpRow
HierarchyRow
HistoryRow
HotlistRow
ImportDefaultRow
ImportFieldRow
ImportObjectRow
ImportRelationRow
InboxRow
IntentGroupLinkRow
IntentHeadingLinkRow
IntentRow
InvitationRow
InvoiceEntryRow
InvoiceRow
InvoiceSumRow
InvoiceTypeRow
ItemConfigRow
KbAttachmentRow
KbCategoryLogRow
KbCategoryRow
KbEntryCommentRow
KbEntryKeywordRow
KbEntryLogRow
KbEntryRow
KbEntryWordsRow
KbGroupEntryRow
KbGroupRow
KbHttpLinkRow
KbSolutionFinderEntryRow
KbSolutionFinderRow
KbWorkflowAccessRow
KbWorkflowRow
LanguageInfoCountryRow
LanguageInfoRow
LegalBaseRow
LegalHtmlTagsRow
LicenseAssocLinkRow
LicenseSatlLinkRow
LocaleTextRow
LockingRow
LogDebugRow
LogEventsRow
LoginCustomerRow
LoginRow
MailAliasRow
MailBlockRow
MailInFilterRow
MailInUidlRow
MergeMoveLogRow
MessageCustomersRow
MessageHandlerRow
MessageHeaderRow
MessageIdRow
MessageRow
ModuleLicenseRow
ModuleOwnerRow
MrMrsGroupLinkRow
MrMrsHeadingLinkRow
MrMrsRow
MsFilterMailRow
MsFilterRow
MsSubstituteRow
MsTrashbinRow
NoticeFrameRow
NotifyRow
OLEFieldRow
OLEFieldTextRow
OLESubjectRow
OLESubjectTextRow
OLEViewRow
OLEViewTextRow
OnlineAppRow
OutboxRow
OutgoingMessageRow
OwnerContactLinkRow
PasswordRulesRow
PaymentTermsGroupLinkRow
PaymentTermsHeadingLinkRow
PaymentTermsRow
PaymentTypeGroupLinkRow
PaymentTypeHeadingLinkRow
PaymentTypeRow
PersIntGroupLinkRow
PersIntHeadingLinkRow
PersIntRow
PersonInterestRow
PersonRow
PersPosGroupLinkRow
PersPosHeadingLinkRow
PersPosRow
PhoneFormatRow
PhoneRow
PMembTypeGroupLinkRow
PMembTypeHeadingLinkRow
PMembTypeRow
PrefDescLineRow
PrefDescRow
PreferenceRow
PriceListRow
PriceUnitGroupLinkRow
PriceUnitHeadingLinkRow
PriceUnitRow
PriorityGroupLinkRow
PriorityHeadingLinkRow
PriorityRow
ProbGroupLinkRow
ProbHeadingLinkRow
ProbRow
ProductCategoryGroupLinkRow
ProductCategoryHeadingLinkRow
ProductCategoryRow
ProductFamilyGroupLinkRow
ProductFamilyHeadingLinkRow
ProductFamilyRow
ProductRow
ProductTypeGroupLinkRow
ProductTypeHeadingLinkRow
ProductTypeRow
ProductVersionRow
ProfileRow
ProjectMemberRow
ProjectRow
ProjectTypeStatusLinkRow
ProjStatusGroupLinkRow
ProjStatusHeadingLinkRow
ProjStatusRow
ProjTypeGroupLinkRow
ProjTypeHeadingLinkRow
ProjTypeRow
PublishRow
PushNotificationServiceRow
QuickReplyRow
QuoteAlternativeRow
QuoteConnectionAccessRow
QuoteConnectionRow
QuoteLineConfigurationRow
QuoteLineRow
QuoteRow
QuoteVersionAttachmentRow
QuoteVersionRow
ReasonGroupLinkRow
ReasonHeadingLinkRow
ReasonRow
ReasonSoldGroupLinkRow
ReasonSoldHeadingLinkRow
ReasonSoldRow
ReasonStalledGroupLinkRow
ReasonStalledHeadingLinkRow
ReasonStalledRow
RecurrenceRuleRow
RedLetterDayRow
RefCountRangeRow
RefCountsRow
RegistryRow
RejectReasonGroupLinkRow
RejectReasonHeadingLinkRow
RejectReasonRow
RelationDefinitionGroupLinkRow
RelationDefinitionHeadingLinkRow
RelationDefinitionRow
RelationsRow
RelationTargetRow
ReplyTemplateAttachmentRow
ReplyTemplateBodyRow
ReplyTemplateFolderRow
ReplyTemplateRow
ReporterListDefRow
ResourceOverrideRow
RoleCategoryRow
RoleElementRow
RoleMemberRow
RoleRow
RoleWorkflowRow
SaintConfigurationRow
SaleHistRow
SaleRow
SaleStakeholderRow
SaleTypeCatGroupLinkRow
SaleTypeCatHeadingLinkRow
SaleTypeCatRow
SaleTypeGroupLinkRow
SaleTypeHeadingLinkRow
SaleTypeQuoteAttachmentRow
SaleTypeRow
SaleTypeStageLinkRow
SalutationGroupLinkRow
SalutationHeadingLinkRow
SalutationRow
SatelliteRow
SAttachmentRow
SBounceShipmentRow
ScheduledTaskRow
ScheduleRow
ScreenChooserRow
ScreenDefinitionActionRow
ScreenDefinitionElementRow
ScreenDefinitionHiddenRow
ScreenDefinitionLanguageRow
ScreenDefinitionRow
ScriptTraceRow
ScriptTraceRunRow
SDynCriteriaRow
SearchCatGroupLinkRow
SearchCatHeadingLinkRow
SearchCatRow
SearchCriteriaGroupRow
SearchCriteriaRow
SearchCriterionRow
SearchCriterionValueRow
SelectionMemberRow
SelectionRow
SequenceRow
ServiceAuthRow
SessionObjectRow
ShipmentTypeReservationRow
ShipmentTypeRow
SLinkCustomerRow
SLinkCustomerStaticalRow
SLinkRow
SListCustomerRow
SListElementRow
SListRow
SListShipmentRow
SMessageblockRow
SMessageRow
SmsHysteriaRow
SmsRow
SnapshotRow
SoapAccessRow
SORCriteriaRow
SORFCTRow
SORFieldRow
SORLabelLayoutRow
SOROperatorsRow
SORPublishGroupLinkRow
SORPublishRow
SORSectionRow
SORTemplateRow
SourceGroupLinkRow
SourceHeadingLinkRow
SourceRow
SPictureEntryRow
SPictureFolderRow
SSentMessageRow
SShipmentAddrRow
SShipmentRow
SSmtpServersRow
StakeholderRoleGroupLinkRow
StakeholderRoleHeadingLinkRow
StakeholderRoleRow
StaticListRefRow
StatusDefRow
StatusValueRow
SubscriptionUnitGroupLinkRow
SubscriptionUnitHeadingLinkRow
SubscriptionUnitRow
SuggestedAppointmentRow
SuggestedDocumentRow
SuperListColumnSizeRow
SWashingListRow
SWashingRow
SystemEventRow
SystemScriptRow
TabOrderRow
TagsGroupLinkRow
TagsHeadingLinkRow
TagsRow
TaskGroupLinkRow
TaskHeadingLinkRow
TaskRow
TemporaryKeyRow
TemporaryWordsRow
TextRow
TicketAlertRow
TicketAttachmentRow
TicketCustomersRow
TicketLogActionRow
TicketLogChangeRow
TicketLogRow
TicketPriorityRow
TicketRelationActionRow
TicketRelationRow
TicketRelationTypeRow
TicketRow
TicketStatusHistoryRow
TicketStatusRow
TicketTypeRow
TimestampsRow
TravelCurrentRow
TravelGeneratedDatabaseRow
TravelGeneratedTransactionRow
TravelIDMappingRow
TravellerRow
TravelTransactionLogRow
TrayAppRow
TreeExplorerEntryRow
TreeExplorerLinkRow
TypicalSearchRow
TZDstRuleRow
TZLocationRow
TZStdRuleRow
UDAppntLargeRow
UDAppntSmallRow
UDContactLargeRow
UDContactSmallRow
UDDocLargeRow
UDDocSmallRow
UDefFieldGLRow
UDefFieldRow
UDListDefinitionRow
UDListGroupLinkRow
UDListHeadingLinkRow
UDListRow
UDPersonLargeRow
UDPersonSmallRow
UDProjectLargeRow
UDProjectSmallRow
UDSaleLargeRow
UDSaleSmallRow
UDTempLargeRow
UDTempSmallRow
URLRow
UsageStatsRow
UserAttributeRow
UserCandidateRow
UserGroupLinkRow
UserGroupRow
UserPreferenceRow
UserRoleLinkRow
VisibleForRow
WebAppUsageRow
WebhookRow
WinPosSizeRow
WordRelationsRow
WsdlDescriptionRow
ZipToCityRow
Implements
INestedPersist
ISoDataLookup
ISentryIgnorable
ISoItem
Inherited Members
PrivateSave.GetTableInfos()
PrivateSave.CloneToBasicUpdatingQuery()
PrivateSave.GetPersistedFieldValue(FieldInfo)
PrivateSave.IsPersistedFieldValueKnown(FieldInfo)
PrivateSave.InnerFieldValuePairs
PrivateSave.InnerPrimaryKey
PrivateSave.InnerPrimaryKeyValue
PrivateSave.OnUpdateField
SqlCommand.Origin
SqlCommand.AddIgnoreAutoSentryTableInfo(TableInfo)
SqlCommand.AddIgnoreAutoSentryTableInfo(IEnumerable<TableInfo>)
SqlCommand.RemoveIgnoreAutoSentryTableInfo(TableInfo)
SqlCommand.ClearIgnoreAutoSentryTableInfos()
SqlCommand.IsAutoSentryIgnoredOnTableInfo(TableInfo)
SqlCommand.GetPrivateSaves()
SqlCommand.GetInserts()
SqlCommand.GetUpdates()
SqlCommand.GetDeletes()
SqlCommand.GetSelect()
SqlCommand.AutoSentryIgnoredTables
Object.ToString()
Object.Equals(Object)
Object.Equals(Object, Object)
Object.ReferenceEquals(Object, Object)
Object.GetHashCode()
Object.GetType()
Object.MemberwiseClone()
Namespace: SuperOffice.CRM.Rows
Assembly: SoDataBase.dll
Syntax
public abstract class TableRowBase : PrivateSave, INestedPersist, ISoDataLookup, ISentryIgnorable, ISoItem

Constructors

TableRowBase(IdxBase)

Constructor for the class, taking a unique index as argument

Declaration
protected TableRowBase(IdxBase idx)
Parameters
Type Name Description
IdxBase idx

The unique index used to load the object from the database.

Fields

_onValueChange

Declaration
protected OnTableValueChange _onValueChange
Field Value
Type Description
OnTableValueChange

_relatedNestedPersistMembers

Declaration
protected List<INestedPersist> _relatedNestedPersistMembers
Field Value
Type Description
List<INestedPersist>

_saveOwner

Declaration
protected INestedPersist _saveOwner
Field Value
Type Description
INestedPersist

_sentries

Declaration
protected SentryCollection _sentries
Field Value
Type Description
SentryCollection

_sqlType

Declaration
protected SqlType _sqlType
Field Value
Type Description
SqlType

Properties

ForeignKeyHelper

Declaration
public RowForeignKeyHelper ForeignKeyHelper { get; }
Property Value
Type Description
RowForeignKeyHelper

IsDeleted

Has the row been deleted in the database.

Declaration
public virtual bool IsDeleted { get; }
Property Value
Type Description
Boolean

IsDirty

Is the row dirty, e.g. been modified since the last time it was saved to the database.

Declaration
public virtual bool IsDirty { get; }
Property Value
Type Description
Boolean

IsMarkedForDelete

Declaration
public bool IsMarkedForDelete { get; set; }
Property Value
Type Description
Boolean

IsNew

Is the row new, e.g. not been inserted to the database?

Declaration
public abstract bool IsNew { get; }
Property Value
Type Description
Boolean

IsSaving

Is the nested persist in a saving state, hence disable Sentry when reading id's

Declaration
public virtual bool IsSaving { get; }
Property Value
Type Description
Boolean

IsSentryIgnored

Get value indicating whether sentry is ignored on the current object for the current thread.

Declaration
public override bool IsSentryIgnored { get; }
Property Value
Type Description
Boolean
Overrides
PrivateSave.IsSentryIgnored

Item[SoField]

Get or sets a value based on the SoField definition for a field

Declaration
public virtual object this[SoField fieldInfo] { get; set; }
Parameters
Type Name Description
SoField fieldInfo

Information about a field

Property Value
Type Description
Object

Value of the field.

Item[Int32]

Get or set a value based on the fields number.

Declaration
public virtual object this[int fieldId] { get; set; }
Parameters
Type Name Description
Int32 fieldId

Number of hte field

Property Value
Type Description
Object

Value of the field.

Item[String]

Get or set a value based on the name of the field.

Declaration
public abstract object this[string fieldName] { get; set; }
Parameters
Type Name Description
String fieldName

Name of the field in the database

Property Value
Type Description
Object

Value of the field.

Sentries

The collection of sentries that are guarding this row. This collection is automatically initialized by some HDB objects, and all RDB entities.

Declaration
public SentryCollection Sentries { get; }
Property Value
Type Description
SentryCollection

SqlType

The kind of Sql command this object represents.

Declaration
public override SqlType SqlType { get; }
Property Value
Type Description
SqlType
Overrides
SqlCommand.SqlType
Remarks

This object can be a delete, update or insert command.

TableInfo

Declaration
public abstract TableInfo TableInfo { get; }
Property Value
Type Description
TableInfo

Methods

BeginIgnoreSentryCheck()

Starts the process of ignoring sentry on the object implementing the interface on the current thread.

Declaration
public override IgnoreSentryCheck BeginIgnoreSentryCheck()
Returns
Type Description
IgnoreSentryCheck

Disposable object that calls EndIgnoreSentryCheck() on Dispose.

Overrides
PrivateSave.BeginIgnoreSentryCheck()

Delete()

Delete the row from the database.

Declaration
public virtual void Delete()

EndIgnoreSentryCheck()

Ends the process of ignoring sentry on the object implementing the interface on the current thread.

Declaration
public override void EndIgnoreSentryCheck()
Overrides
PrivateSave.EndIgnoreSentryCheck()
Exceptions
Type Condition
SoException

Thrown if Sentry is not ignored.

GetFieldValue(FieldInfo)

Get the value of a field

Declaration
public override object GetFieldValue(FieldInfo field)
Parameters
Type Name Description
FieldInfo field

Specification of a field

Returns
Type Description
Object

Field value, such as an int, DateTime, string ...

Overrides
PrivateSave.GetFieldValue(FieldInfo)

GetKnownFields()

Declaration
public List<FieldInfo> GetKnownFields()
Returns
Type Description
List<FieldInfo>

GetRelatedNestedPersist()

Get an enumerator for all related nested persist members.

Declaration
protected virtual IEnumerable<INestedPersist> GetRelatedNestedPersist()
Returns
Type Description
IEnumerable<INestedPersist>

Enumerator holding related nested persist members.

InternalSetValue(SoField, Object)

Declaration
protected virtual void InternalSetValue(SoField fieldInfo, object value)
Parameters
Type Name Description
SoField fieldInfo
Object value

InternalSetValue(Int32, Object)

Declaration
protected virtual void InternalSetValue(int fieldId, object value)
Parameters
Type Name Description
Int32 fieldId
Object value

InternalSetValue(String, Object)

Declaration
protected abstract void InternalSetValue(string fieldName, object value)
Parameters
Type Name Description
String fieldName
Object value

IsGhostField(FieldInfo)

Check if there is actually a valid value for the given field. If not, then this field is called a 'ghost'. This happens if a tablerow was 'fetched' but did not actually find its data in the database.

Declaration
public override bool IsGhostField(FieldInfo field)
Parameters
Type Name Description
FieldInfo field

Specification of a field

Returns
Type Description
Boolean

True if the field is a 'ghost', i.e., if it has NO valid known value

Overrides
PrivateSave.IsGhostField(FieldInfo)
Remarks

In a TableRow object, we assume that either the whole row has been read, or none of it. Which field you're asking about is of less interest as long as it is one of ours.

Load(IdxBase, SoDataReader)

Populate a row based on a datareader.

Declaration
public void Load(IdxBase index, SoDataReader reader)
Parameters
Type Name Description
IdxBase index

Index for the table that holds this row

SoDataReader reader

Reader to read data from.

Load(SoDataReader, TableInfo)

Populate a row based on a datareader

Declaration
public void Load(SoDataReader reader, TableInfo tableInfo)
Parameters
Type Name Description
SoDataReader reader

Reader to read data from.

TableInfo tableInfo

Instance of TableInfo holding

OnIdUpdate()

Declaration
protected virtual void OnIdUpdate()

OnLoad(SoDataReader, TableInfo)

Called when data is read from the database, to fill the road with appropriate data.

Declaration
protected virtual void OnLoad(SoDataReader reader, TableInfo tableInfo)
Parameters
Type Name Description
SoDataReader reader

SoDataReader holding the data returned from the database.

TableInfo tableInfo

The TableInfo used for the SELECT statement.

OnLoaded(IdxBase)

Called when data is loaded from the database, to do further processing.

Declaration
protected virtual void OnLoaded(IdxBase index)
Parameters
Type Name Description
IdxBase index

Index used to load data from the database

OnPreIdUpdate()

Allow for "fake id's" to be forced upon related objects.

Declaration
protected virtual void OnPreIdUpdate()
Remarks

In order to figure out which objects taking part of the nested save operation that actually needs to be saved, this method allows for "fake id's" to be forced upon related objects. Upon receiving the "fake id", the objects receiving such an id can determine if they need to be persisted (e.g. saved) to the database. However, the fake id's forced upon related objects must be set to correct id's in the OnIdUpdate method taking place later in the save operation.

OnPrimaryKeyRequest(PKContainer)

Declaration
protected virtual void OnPrimaryKeyRequest(PKContainer pkContainer)
Parameters
Type Name Description
PKContainer pkContainer
Remarks

Check if the row is a INSERT or UPDATE command. If it is an INSERT command, an new primary key value is requested.

Validate to row.

OnPrimaryKeyUpdate(PKContainer)

Declaration
protected virtual void OnPrimaryKeyUpdate(PKContainer pkContainer)
Parameters
Type Name Description
PKContainer pkContainer

OnSave(BatchSave)

Declaration
protected virtual void OnSave(BatchSave batchSave)
Parameters
Type Name Description
BatchSave batchSave

OnSaved(Boolean)

Declaration
protected virtual void OnSaved(bool bSucceeded)
Parameters
Type Name Description
Boolean bSucceeded

Reset()

Reset the changes made on the object.

Declaration
protected abstract void Reset()
Remarks

If the row is not persisted to the database (e.g. IsNew is true), all the values will be reset. If the row has been persisted to or loaded from the database, the properties will be set to those of the last persisted or loaded values.

RowLoad()

Load the row from the database, using the provided unique index.

Declaration
protected void RowLoad()

RowLoad(ITableRowLoadHandler)

Load the row from the database, using the provided unique index.

Declaration
protected void RowLoad(ITableRowLoadHandler handler)
Parameters
Type Name Description
ITableRowLoadHandler handler

Save()

Save all the contained objects to the database.

Declaration
public virtual void Save()

SetDefaults()

Set default values for the row.

Declaration
public void SetDefaults()

SetDefaults(DashboardTileDefinitionRow, String)

Set default values for the appointment's main row, and for any udef fields it may have.

Declaration
public void SetDefaults(DashboardTileDefinitionRow row, string entityName)
Parameters
Type Name Description
DashboardTileDefinitionRow row

DashboardTileDefinitionRow

String entityName

entity Name

SetDefaults(DefaulterStrategy)

Set default values for the row.

Declaration
public abstract void SetDefaults(DefaulterStrategy strategy)
Parameters
Type Name Description
DefaulterStrategy strategy

Strategy used when applying default values; values depend on where we are in the Create/Fetch/Populate/Save cycle

SetDirty(Int32, Object, Object)

Force the object to be dirty.

Declaration
protected void SetDirty(int fieldId, object oldValue, object newValue)
Parameters
Type Name Description
Int32 fieldId

ID of the field that has changed

Object oldValue

The value of the field prior to change.

Object newValue

The value of the field after it was chaned.

SetPrimaryKey(Int32)

Declaration
protected abstract void SetPrimaryKey(int primaryKey)
Parameters
Type Name Description
Int32 primaryKey

SetRowAsNew()

Declaration
public virtual void SetRowAsNew()

SetSaveOwner(INestedPersist)

Declaration
public virtual void SetSaveOwner(INestedPersist saveOwner)
Parameters
Type Name Description
INestedPersist saveOwner

Validate()

Validate the row, for saving to the database

Declaration
public virtual RowValidator Validate()
Returns
Type Description
RowValidator

The result of the validation.

Validate(RowValidator)

Validate this row.

Declaration
public virtual void Validate(RowValidator rowValidator)
Parameters
Type Name Description
RowValidator rowValidator

RowValidator for inserting the result of the validation

Events

OnElementIdUpdate

Event raised when the item receives a primary key

Declaration
public event OnIdUpdate OnElementIdUpdate
Event Type
Type Description
OnIdUpdate

OnElementSaved

Event raised when the item is saved to the database.

Declaration
public event OnSaved OnElementSaved
Event Type
Type Description
OnSaved

OnValueChanged

Declaration
public event OnTableValueChange OnValueChanged
Event Type
Type Description
OnTableValueChange

Explicit Interface Implementations

ISoDataLookup.GetPersistedFieldValue(FieldInfo)

Get the persisted value of a field. One should always verify that the persisted value is known using the method prior to accessing it, as an exception might be thrown.

Declaration
object ISoDataLookup.GetPersistedFieldValue(FieldInfo field)
Parameters
Type Name Description
FieldInfo field

Specification of a field

Returns
Type Description
Object

Field value, such as an int, DateTime, string ... Null can be returned if the value is not known.

Exceptions
Type Condition
SoNotImplementedException

Thrown if the object implementing the interface does not support it.
The corresponding should for such instances return false.

ISoDataLookup.IsPersistedFieldValueKnown(FieldInfo)

Check if the persisted value for a dield is known.

Declaration
bool ISoDataLookup.IsPersistedFieldValueKnown(FieldInfo field)
Parameters
Type Name Description
FieldInfo field

Specification of a field

Returns
Type Description
Boolean

True if the value is known.

INestedPersist.OnIdUpdate()

Declaration
void INestedPersist.OnIdUpdate()

INestedPersist.OnPreIdUpdate()

Allow for "fake id's" to be forced upon related objects.

Declaration
void INestedPersist.OnPreIdUpdate()
Remarks

In order to figure out which objects taking part of the nested save operation that actually needs to be saved, this method allows for "fake id's" to be forced upon related objects. Upon receiving the "fake id", the objects receiving such an id can determine if they need to be persisted (e.g. saved) to the database. However, the fake id's forced upon related objects must be set to correct id's in the OnIdUpdate method taking place later in the save operation.

INestedPersist.OnPrimaryKeyRequest(PKContainer)

Declaration
void INestedPersist.OnPrimaryKeyRequest(PKContainer pkContainer)
Parameters
Type Name Description
PKContainer pkContainer

INestedPersist.OnPrimaryKeyUpdate(PKContainer)

Declaration
void INestedPersist.OnPrimaryKeyUpdate(PKContainer pkContainer)
Parameters
Type Name Description
PKContainer pkContainer

INestedPersist.OnSave(BatchSave)

Declaration
void INestedPersist.OnSave(BatchSave batchSave)
Parameters
Type Name Description
BatchSave batchSave

INestedPersist.OnSaved(Boolean)

Declaration
void INestedPersist.OnSaved(bool bSucceeded)
Parameters
Type Name Description
Boolean bSucceeded

Implements

INestedPersist
ISoDataLookup
ISentryIgnorable
ISoItem

Extension Methods

EnumUtil.MapEnums<From, To>(From)
QueryExectionExtensions.ExecuteReader(SqlCommand, Boolean)
QueryExectionExtensions.ExecuteScalar<T>(SqlCommand)
QueryExectionExtensions.ExecuteNonQuery(SqlCommand)
Converters.MapEnums<From, To>(From)
© SuperOffice. All rights reserved.
SuperOffice |  Community |  Release Notes |  Privacy |  Site feedback |  Search Docs |  About Docs |  Contribute |  Back to top