Class SoTable
Table description according to the deployed dictionary and friends. All relevant dictionary bits, naming convetions and preferences are collected and decoded here, to hide the ugly details of history...
Implements
Inherited Members
Namespace: SuperOffice.Data.Dictionary
Assembly: SoDataBase.dll
Syntax
public class SoTable : IEquatable<SoTable>
Remarks
The details around transaction logging are based on the code found DBDLL/DBAS.CPP around line 2800 in the C++ client.
Properties
AdditionalFields
This list contains SoField objects for those fields that are in the database, but were not known at the time the NetServer code was generated. See CodeGenerationState; all these fields are present in the main SoField collection, this list exists as an optimization.
Declaration
public List<SoField> AdditionalFields { get; }
Property Value
Type | Description |
---|---|
List<SoField> |
Remarks
Extra fields only.
AdditionalValues
Additional meta-data on the table key/value dictionary from the DatabaseModel. e.g. "SoftDelete" = "true"
Declaration
public Dictionary<string, string> AdditionalValues { get; }
Property Value
Type | Description |
---|---|
Dictionary<string, string> |
Remarks
The details around transaction logging are based on the code found DBDLL/DBAS.CPP around line 2800 in the C++ client.
AutoGenerateGuid
Does this table have at least one field that needs to be auto-populated with a GUID on insert?
Declaration
public bool AutoGenerateGuid { get; }
Property Value
Type | Description |
---|---|
bool |
Remarks
The details around transaction logging are based on the code found DBDLL/DBAS.CPP around line 2800 in the C++ client.
Block
Should table be blocked in generic API's - comes from DatabaseModel + hardcoded blocklist in SuperOffice.CD.DSL.PhysicalDatabase.DatabaseManagement
Declaration
public SoTable.BlockKind Block { get; }
Property Value
Type | Description |
---|---|
SoTable.BlockKind |
Remarks
The details around transaction logging are based on the code found DBDLL/DBAS.CPP around line 2800 in the C++ client.
DbName
Name of the table in the database
Declaration
public string DbName { get; }
Property Value
Type | Description |
---|---|
string |
Remarks
The details around transaction logging are based on the code found DBDLL/DBAS.CPP around line 2800 in the C++ client.
DisplayDescription
Friendly description, if set, can be multi-language string
Declaration
public string DisplayDescription { get; }
Property Value
Type | Description |
---|---|
string |
Remarks
The details around transaction logging are based on the code found DBDLL/DBAS.CPP around line 2800 in the C++ client.
DisplayName
Friendly name, if set, can be multi-language string
Declaration
public string DisplayName { get; }
Property Value
Type | Description |
---|---|
string |
Remarks
The details around transaction logging are based on the code found DBDLL/DBAS.CPP around line 2800 in the C++ client.
DoNotReplicate
Is this table marked with DoNotReplicate in the dictionary
Declaration
public bool DoNotReplicate { get; }
Property Value
Type | Description |
---|---|
bool |
Remarks
The details around transaction logging are based on the code found DBDLL/DBAS.CPP around line 2800 in the C++ client.
FieldLevelLogging
Is this table marked for field-level logging
Declaration
public bool FieldLevelLogging { get; }
Property Value
Type | Description |
---|---|
bool |
Remarks
The details around transaction logging are based on the code found DBDLL/DBAS.CPP around line 2800 in the C++ client.
Fields
Get a list of all the Fields in the deployed dictionary. Including the AdditionalFields
Declaration
public SoField[] Fields { get; }
Property Value
Type | Description |
---|---|
SoField[] |
Remarks
The details around transaction logging are based on the code found DBDLL/DBAS.CPP around line 2800 in the C++ client.
FreetextIndex
Is this table marked for freetext indexing
Declaration
public bool FreetextIndex { get; }
Property Value
Type | Description |
---|---|
bool |
Remarks
The details around transaction logging are based on the code found DBDLL/DBAS.CPP around line 2800 in the C++ client.
GenerationState
Relation between the generated code in NetServer and the actual database state, applies to both tables and fields
Declaration
public CodeGenerationState GenerationState { get; }
Property Value
Type | Description |
---|---|
CodeGenerationState |
Remarks
The details around transaction logging are based on the code found DBDLL/DBAS.CPP around line 2800 in the C++ client.
HasSoftDelete
Is Soft Delete support enabled for this table
Declaration
public bool HasSoftDelete { get; }
Property Value
Type | Description |
---|---|
bool |
Remarks
The details around transaction logging are based on the code found DBDLL/DBAS.CPP around line 2800 in the C++ client.
HasTextExtensions
Does this table have at least one field that overruns into the text table, currently active?
Declaration
public bool HasTextExtensions { get; }
Property Value
Type | Description |
---|---|
bool |
Remarks
The details around transaction logging are based on the code found DBDLL/DBAS.CPP around line 2800 in the C++ client.
HashCheckFields
Get an enumeration of all fields involved in hash checks, either as source or as the checksum
Declaration
public IEnumerable<SoField> HashCheckFields { get; }
Property Value
Type | Description |
---|---|
IEnumerable<SoField> |
Remarks
The details around transaction logging are based on the code found DBDLL/DBAS.CPP around line 2800 in the C++ client.
IsMDOList
Is this table the base table of an MDO list? If true, the MDOListInfo property will tell you more.
Declaration
public bool IsMDOList { get; }
Property Value
Type | Description |
---|---|
bool |
Remarks
The details around transaction logging are based on the code found DBDLL/DBAS.CPP around line 2800 in the C++ client.
this[FieldInfo]
Get the SoField corresponding to the given FieldInfo object, by its name
Declaration
public SoField this[FieldInfo fieldInfo] { get; }
Parameters
Type | Name | Description |
---|---|---|
FieldInfo | fieldInfo |
Property Value
Type | Description |
---|---|
SoField |
Remarks
The details around transaction logging are based on the code found DBDLL/DBAS.CPP around line 2800 in the C++ client.
this[int]
Get the SoField located at the given position in the table definition
Declaration
public SoField this[int index] { get; }
Parameters
Type | Name | Description |
---|---|---|
int | index |
Property Value
Type | Description |
---|---|
SoField |
Remarks
The details around transaction logging are based on the code found DBDLL/DBAS.CPP around line 2800 in the C++ client.
this[string]
Get the SoField corresponding to the given field name (not case sensitive)
Declaration
public SoField this[string fieldName] { get; }
Parameters
Type | Name | Description |
---|---|---|
string | fieldName |
Property Value
Type | Description |
---|---|
SoField |
Remarks
The details around transaction logging are based on the code found DBDLL/DBAS.CPP around line 2800 in the C++ client.
KeepInCache
Is this table marked with KeepInCache in the dictionary
Declaration
public bool KeepInCache { get; }
Property Value
Type | Description |
---|---|
bool |
Remarks
The details around transaction logging are based on the code found DBDLL/DBAS.CPP around line 2800 in the C++ client.
Kind
Kind and origin of table - SuperOffice system; Partner-defined using the SoDictionary; or ExtraTable from Customer Service
Declaration
public SoTable.TableKind Kind { get; }
Property Value
Type | Description |
---|---|
SoTable.TableKind |
Remarks
The details around transaction logging are based on the code found DBDLL/DBAS.CPP around line 2800 in the C++ client.
MDOListInfo
If IsMDOList is true, this property returns an object that contains a lot of information about the MDO list
Declaration
public ListInfo MDOListInfo { get; }
Property Value
Type | Description |
---|---|
ListInfo |
Remarks
The details around transaction logging are based on the code found DBDLL/DBAS.CPP around line 2800 in the C++ client.
Name
Conceptual name of the table (the real name of the table, independent of database)
Declaration
public string Name { get; }
Property Value
Type | Description |
---|---|
string |
Remarks
The details around transaction logging are based on the code found DBDLL/DBAS.CPP around line 2800 in the C++ client.
NumFields
Get the number of fields in this table
Declaration
public int NumFields { get; }
Property Value
Type | Description |
---|---|
int |
Remarks
The details around transaction logging are based on the code found DBDLL/DBAS.CPP around line 2800 in the C++ client.
PrivacyTags
Set of privacy tags on the table from the DatabaseModel
Declaration
public HashSet<string> PrivacyTags { get; }
Property Value
Type | Description |
---|---|
HashSet<string> |
Remarks
The details around transaction logging are based on the code found DBDLL/DBAS.CPP around line 2800 in the C++ client.
ReplicateAreaManagement
Is this table marked with ReplicateAreaManagement in the dictionary
Declaration
public bool ReplicateAreaManagement { get; }
Property Value
Type | Description |
---|---|
bool |
Remarks
The details around transaction logging are based on the code found DBDLL/DBAS.CPP around line 2800 in the C++ client.
ReplicateDown
Is this table marked with ReplicateDown in the dictionary
Declaration
public bool ReplicateDown { get; }
Property Value
Type | Description |
---|---|
bool |
Remarks
The details around transaction logging are based on the code found DBDLL/DBAS.CPP around line 2800 in the C++ client.
ReplicatePrototype
Is this table marked with ReplicatePrototype in the dictionary
Declaration
public bool ReplicatePrototype { get; }
Property Value
Type | Description |
---|---|
bool |
Remarks
The details around transaction logging are based on the code found DBDLL/DBAS.CPP around line 2800 in the C++ client.
ReplicateUp
Is this table marked with ReplicateUp in the dictionary
Declaration
public bool ReplicateUp { get; }
Property Value
Type | Description |
---|---|
bool |
Remarks
The details around transaction logging are based on the code found DBDLL/DBAS.CPP around line 2800 in the C++ client.
SequenceId
ID used for the table in the sequence table. For ForeignKey and TravelTransactionLog entries, TableNumber.
Declaration
public int SequenceId { get; }
Property Value
Type | Description |
---|---|
int |
Remarks
The details around transaction logging are based on the code found DBDLL/DBAS.CPP around line 2800 in the C++ client.
SoftDeletedDate
Points to the field that is the delete date (soft) for this row
Declaration
public SoField SoftDeletedDate { get; }
Property Value
Type | Description |
---|---|
SoField |
Remarks
The details around transaction logging are based on the code found DBDLL/DBAS.CPP around line 2800 in the C++ client.
SystemTable
Is this table marked with SystemTable in the dictionary
Declaration
public bool SystemTable { get; }
Property Value
Type | Description |
---|---|
bool |
Remarks
The details around transaction logging are based on the code found DBDLL/DBAS.CPP around line 2800 in the C++ client.
TableNumber
Number used on the table in the database when it is referenced. Examples are TravelTransactionLog and ForeignKey. It is not the same as SequenceId.
Declaration
public int TableNumber { get; }
Property Value
Type | Description |
---|---|
int |
Remarks
The details around transaction logging are based on the code found DBDLL/DBAS.CPP around line 2800 in the C++ client.
TempTableCreationStamp
If != null, then this is the UTC creation time for this Temporary Table; otherwise, this is not a temporary table
Declaration
public DateTime TempTableCreationStamp { get; }
Property Value
Type | Description |
---|---|
DateTime |
Remarks
The details around transaction logging are based on the code found DBDLL/DBAS.CPP around line 2800 in the C++ client.
TravelTransactionLog
Should this table be logged to the traveltransactionlog
Declaration
public bool TravelTransactionLog { get; }
Property Value
Type | Description |
---|---|
bool |
Remarks
Note that replication to prototype does not imply traveltransaction logging, so this is not simply the inverse of the DoNotReplicate flag.
Methods
Equals(SoTable)
Overrided equals comparer that is valid accross database sessions
Declaration
public bool Equals(SoTable other)
Parameters
Type | Name | Description |
---|---|---|
SoTable | other | Object to compare too |
Returns
Type | Description |
---|---|
bool | True if equal |
Remarks
The details around transaction logging are based on the code found DBDLL/DBAS.CPP around line 2800 in the C++ client.
Equals(object)
Overrided equals comparer that is valid accross database sessions
Declaration
public override bool Equals(object obj)
Parameters
Type | Name | Description |
---|---|---|
object | obj | Object to compare too |
Returns
Type | Description |
---|---|
bool | True if equal |
Overrides
Remarks
The details around transaction logging are based on the code found DBDLL/DBAS.CPP around line 2800 in the C++ client.
GetHashCode()
Hash code valid accross database sessions.
Declaration
public override int GetHashCode()
Returns
Type | Description |
---|---|
int | Hash code valid accross database sessions. |
Overrides
Remarks
The details around transaction logging are based on the code found DBDLL/DBAS.CPP around line 2800 in the C++ client.
GetRelations()
Get all the relations the table is involved in.
Declaration
public IEnumerable<SoRelation> GetRelations()
Returns
Type | Description |
---|---|
IEnumerable<SoRelation> |
Remarks
The details around transaction logging are based on the code found DBDLL/DBAS.CPP around line 2800 in the C++ client.
GetRelationsWithTable(SoTable)
Get all relations that the table is involved in towards the provided table.
Declaration
public IEnumerable<SoRelation> GetRelationsWithTable(SoTable table)
Parameters
Type | Name | Description |
---|---|---|
SoTable | table | Other table taking part of the relation. |
Returns
Type | Description |
---|---|
IEnumerable<SoRelation> | Relations with the other table. |
Remarks
The details around transaction logging are based on the code found DBDLL/DBAS.CPP around line 2800 in the C++ client.
GetTableInfo()
Get a new instance of TableInfo representing the defenition of the table.
Declaration
public TableInfo GetTableInfo()
Returns
Type | Description |
---|---|
TableInfo | New instance of TableInfo representing the defenition of the table. |
Remarks
The details around transaction logging are based on the code found DBDLL/DBAS.CPP around line 2800 in the C++ client.
IsTableRelated(SoTable)
Is this table related to the provided table.
Declaration
public bool IsTableRelated(SoTable table)
Parameters
Type | Name | Description |
---|---|---|
SoTable | table | Table to check if it has relations to. |
Returns
Type | Description |
---|---|
bool | True if the two tables are related. |
Remarks
The details around transaction logging are based on the code found DBDLL/DBAS.CPP around line 2800 in the C++ client.
ToString()
Name of the table for debug purposes.
Declaration
public override string ToString()
Returns
Type | Description |
---|---|
string | Name of the table for debug purposes. |
Overrides
Remarks
The details around transaction logging are based on the code found DBDLL/DBAS.CPP around line 2800 in the C++ client.
Operators
operator ==(SoTable, SoTable)
Table description according to the deployed dictionary and friends. All relevant dictionary bits, naming convetions and preferences are collected and decoded here, to hide the ugly details of history...
Declaration
public static bool operator ==(SoTable x, SoTable y)
Parameters
Type | Name | Description |
---|---|---|
SoTable | x | |
SoTable | y |
Returns
Type | Description |
---|---|
bool |
Remarks
The details around transaction logging are based on the code found DBDLL/DBAS.CPP around line 2800 in the C++ client.
operator !=(SoTable, SoTable)
Table description according to the deployed dictionary and friends. All relevant dictionary bits, naming convetions and preferences are collected and decoded here, to hide the ugly details of history...
Declaration
public static bool operator !=(SoTable x, SoTable y)
Parameters
Type | Name | Description |
---|---|---|
SoTable | x | |
SoTable | y |
Returns
Type | Description |
---|---|
bool |
Remarks
The details around transaction logging are based on the code found DBDLL/DBAS.CPP around line 2800 in the C++ client.