Show / Hide Table of Contents

Class ProjectMember

Link-table between person and project

Entity Object for table 'projectmember'. Entity objects represent full entities with both the base table object and all related objects, such as and things like owner associate and whatever else is logically related to the base object.
Inheritance
object
NestedPersist
EntityBase
ProjectMember
Implements
INestedPersist
ITableRowLoadHandler
Inherited Members
EntityBase._onGetRelatedObjects
EntityBase.GetAdditionalRelatedNestedPersistViaBaseClassAsync(List<INestedPersist>, bool, CancellationToken)
EntityBase.GetAdditionalRelatedNestedPersistAsync(List<INestedPersist>, bool, CancellationToken)
EntityBase.OnPrimaryKeyRequestAsync(PKContainer)
EntityBase.OnPrimaryKeyUpdateAsync(PKContainer)
EntityBase.OnSaveAsync(BatchSave)
EntityBase.OnSavedAsync(bool)
EntityBase.SetMarkedForDeleteOnRelatedObjects(bool)
EntityBase.OnPreIdUpdateImplementationAsync()
EntityBase.OnIdUpdateImplementation()
EntityBase.UpdateSentryRelatedTableInfoInstance<MainTableInfoType>(SentryCollection, TableInfo)
EntityBase.IsDirty
EntityBase.OnGetRelatedObjects
NestedPersist._saveOwner
NestedPersist._isSaving
NestedPersist.SetSaveOwner(INestedPersist)
NestedPersist.SaveAsync()
NestedPersist.IsSaving
NestedPersist.OnElementSaved
NestedPersist.OnElementIdUpdate
object.ToString()
object.Equals(object)
object.Equals(object, object)
object.ReferenceEquals(object, object)
object.GetHashCode()
object.GetType()
object.MemberwiseClone()
Namespace: SuperOffice.CRM.Entities
Assembly: SoDataBase.dll
Syntax
public class ProjectMember : EntityBase, INestedPersist, ITableRowLoadHandler
Remarks

Entity objects can be created in several ways.

  • Use the static CreateNew() method to create a new, empty object. After populating it with values, you call the SuperOffice.CRM.Data.ProjectMember.Save method and corresponding row(s) in the database are created, and the objects' primary key field updated. This is the preferred way to insert new entities into the database.
  • You can create a (nested) ProjectMember ProjectMember.CustomSearch object to obtain a query pre-populated with the correct tableinfo and return fields. This query can be modified with restrictions, etc. Then, use the static GetFromCustomSearch method to apply the query to the database and obtain the result as an Entity object. This is how you select existing entities from the database when you have a query that does not correspond to any of the existing database indexes.
  • For each unique index defined for the table, there is a corresponding GetFromIdx method to make retrieving data via the indexes easy. Note that if you try to fetch a row that does not exist (for instance, by using the primary key index and specifying a primary key that does not exist in the database), you will get a Row object with the SuperOffice.CRM.Data.ProjectMember.IsNew and SuperOffice.CRM.Data.ProjectMember.IsDirty properties set to true. Such an Entity object is called a 'ghost' and cannot be updated, saved or deleted. You can also get a ghost if the row does exist in the database, but the Sentry system denies Select rights to the row.
Non-unique indexes are handled through the ProjectMemberCollection collection, which has nested classes and GetFromIdx methods for each non-unique index. There are no 'GetFromReader' methods, since that would be rather complex (multiple TableInfo objects required).

Unique indexes on ProjectMember are:
Index fieldsNested index class name
ProjectmemberIdProjectmemberId:

Primary key

Nested index class: ProjectMember.IdxProjectmemberId

Static Get method: SuperOffice.CRM.Entities.ProjectMember.GetFromIdxProjectmemberId
Non-unique indexes on table ProjectMember are:
Index fieldsNested index class name
PersonIdPersonId:

person_id

Nested index class: ProjectMemberCollection.IdxPersonId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxPersonId
ContactIdContactId:

contact_id of person (denormalisation!)

Nested index class: ProjectMemberCollection.IdxContactId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxContactId
ProjectId, RankProjectId:

Parent project

Rank:

Rank in list (starts over for each project)

Nested index class: ProjectMemberCollection.IdxProjectIdRank

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxProjectIdRank

Constructors

ProjectMember(ProjectMemberIdxBase)

Constructor for class ProjectMember.
This object represents a row in table 'projectmember'. Table contact: Project members

Declaration
protected ProjectMember(ProjectMember.ProjectMemberIdxBase idx)
Parameters
Type Name Description
ProjectMember.ProjectMemberIdxBase idx

ContactRowProjectMemberRow.ProjectMemberRowIdx object that the Contact encapsulates.

Remarks

Entity objects can be created in several ways.

  • Use the static CreateNew() method to create a new, empty object. After populating it with values, you call the SuperOffice.CRM.Data.ProjectMember.Save method and corresponding row(s) in the database are created, and the objects' primary key field updated. This is the preferred way to insert new entities into the database.
  • You can create a (nested) ProjectMember ProjectMember.CustomSearch object to obtain a query pre-populated with the correct tableinfo and return fields. This query can be modified with restrictions, etc. Then, use the static GetFromCustomSearch method to apply the query to the database and obtain the result as an Entity object. This is how you select existing entities from the database when you have a query that does not correspond to any of the existing database indexes.
  • For each unique index defined for the table, there is a corresponding GetFromIdx method to make retrieving data via the indexes easy. Note that if you try to fetch a row that does not exist (for instance, by using the primary key index and specifying a primary key that does not exist in the database), you will get a Row object with the SuperOffice.CRM.Data.ProjectMember.IsNew and SuperOffice.CRM.Data.ProjectMember.IsDirty properties set to true. Such an Entity object is called a 'ghost' and cannot be updated, saved or deleted. You can also get a ghost if the row does exist in the database, but the Sentry system denies Select rights to the row.
Non-unique indexes are handled through the ProjectMemberCollection collection, which has nested classes and GetFromIdx methods for each non-unique index. There are no 'GetFromReader' methods, since that would be rather complex (multiple TableInfo objects required).

Unique indexes on ProjectMember are:
Index fieldsNested index class name
ProjectmemberIdProjectmemberId:

Primary key

Nested index class: ProjectMember.IdxProjectmemberId

Static Get method: SuperOffice.CRM.Entities.ProjectMember.GetFromIdxProjectmemberId
Non-unique indexes on table ProjectMember are:
Index fieldsNested index class name
PersonIdPersonId:

person_id

Nested index class: ProjectMemberCollection.IdxPersonId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxPersonId
ContactIdContactId:

contact_id of person (denormalisation!)

Nested index class: ProjectMemberCollection.IdxContactId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxContactId
ProjectId, RankProjectId:

Parent project

Rank:

Rank in list (starts over for each project)

Nested index class: ProjectMemberCollection.IdxProjectIdRank

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxProjectIdRank

ProjectMember(ProjectMemberRow, ProjectMemberIdxBase)

Link-table between person and project

Entity Object for table 'projectmember'. Entity objects represent full entities with both the base table object and all related objects, such as and things like owner associate and whatever else is logically related to the base object.
Declaration
protected ProjectMember(ProjectMemberRow row, ProjectMember.ProjectMemberIdxBase idx)
Parameters
Type Name Description
ProjectMemberRow row
ProjectMember.ProjectMemberIdxBase idx
Remarks

Entity objects can be created in several ways.

  • Use the static CreateNew() method to create a new, empty object. After populating it with values, you call the SuperOffice.CRM.Data.ProjectMember.Save method and corresponding row(s) in the database are created, and the objects' primary key field updated. This is the preferred way to insert new entities into the database.
  • You can create a (nested) ProjectMember ProjectMember.CustomSearch object to obtain a query pre-populated with the correct tableinfo and return fields. This query can be modified with restrictions, etc. Then, use the static GetFromCustomSearch method to apply the query to the database and obtain the result as an Entity object. This is how you select existing entities from the database when you have a query that does not correspond to any of the existing database indexes.
  • For each unique index defined for the table, there is a corresponding GetFromIdx method to make retrieving data via the indexes easy. Note that if you try to fetch a row that does not exist (for instance, by using the primary key index and specifying a primary key that does not exist in the database), you will get a Row object with the SuperOffice.CRM.Data.ProjectMember.IsNew and SuperOffice.CRM.Data.ProjectMember.IsDirty properties set to true. Such an Entity object is called a 'ghost' and cannot be updated, saved or deleted. You can also get a ghost if the row does exist in the database, but the Sentry system denies Select rights to the row.
Non-unique indexes are handled through the ProjectMemberCollection collection, which has nested classes and GetFromIdx methods for each non-unique index. There are no 'GetFromReader' methods, since that would be rather complex (multiple TableInfo objects required).

Unique indexes on ProjectMember are:
Index fieldsNested index class name
ProjectmemberIdProjectmemberId:

Primary key

Nested index class: ProjectMember.IdxProjectmemberId

Static Get method: SuperOffice.CRM.Entities.ProjectMember.GetFromIdxProjectmemberId
Non-unique indexes on table ProjectMember are:
Index fieldsNested index class name
PersonIdPersonId:

person_id

Nested index class: ProjectMemberCollection.IdxPersonId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxPersonId
ContactIdContactId:

contact_id of person (denormalisation!)

Nested index class: ProjectMemberCollection.IdxContactId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxContactId
ProjectId, RankProjectId:

Parent project

Rank:

Rank in list (starts over for each project)

Nested index class: ProjectMemberCollection.IdxProjectIdRank

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxProjectIdRank

Fields

_contact

Related HDB object(s).

Declaration
protected Contact _contact
Field Value
Type Description
Contact
Remarks

Entity objects can be created in several ways.

  • Use the static CreateNew() method to create a new, empty object. After populating it with values, you call the SuperOffice.CRM.Data.ProjectMember.Save method and corresponding row(s) in the database are created, and the objects' primary key field updated. This is the preferred way to insert new entities into the database.
  • You can create a (nested) ProjectMember ProjectMember.CustomSearch object to obtain a query pre-populated with the correct tableinfo and return fields. This query can be modified with restrictions, etc. Then, use the static GetFromCustomSearch method to apply the query to the database and obtain the result as an Entity object. This is how you select existing entities from the database when you have a query that does not correspond to any of the existing database indexes.
  • For each unique index defined for the table, there is a corresponding GetFromIdx method to make retrieving data via the indexes easy. Note that if you try to fetch a row that does not exist (for instance, by using the primary key index and specifying a primary key that does not exist in the database), you will get a Row object with the SuperOffice.CRM.Data.ProjectMember.IsNew and SuperOffice.CRM.Data.ProjectMember.IsDirty properties set to true. Such an Entity object is called a 'ghost' and cannot be updated, saved or deleted. You can also get a ghost if the row does exist in the database, but the Sentry system denies Select rights to the row.
Non-unique indexes are handled through the ProjectMemberCollection collection, which has nested classes and GetFromIdx methods for each non-unique index. There are no 'GetFromReader' methods, since that would be rather complex (multiple TableInfo objects required).

Unique indexes on ProjectMember are:
Index fieldsNested index class name
ProjectmemberIdProjectmemberId:

Primary key

Nested index class: ProjectMember.IdxProjectmemberId

Static Get method: SuperOffice.CRM.Entities.ProjectMember.GetFromIdxProjectmemberId
Non-unique indexes on table ProjectMember are:
Index fieldsNested index class name
PersonIdPersonId:

person_id

Nested index class: ProjectMemberCollection.IdxPersonId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxPersonId
ContactIdContactId:

contact_id of person (denormalisation!)

Nested index class: ProjectMemberCollection.IdxContactId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxContactId
ProjectId, RankProjectId:

Parent project

Rank:

Rank in list (starts over for each project)

Nested index class: ProjectMemberCollection.IdxProjectIdRank

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxProjectIdRank

_createdAssociate

Related HDB object(s).

Declaration
protected AssociateRow _createdAssociate
Field Value
Type Description
AssociateRow
Remarks

Entity objects can be created in several ways.

  • Use the static CreateNew() method to create a new, empty object. After populating it with values, you call the SuperOffice.CRM.Data.ProjectMember.Save method and corresponding row(s) in the database are created, and the objects' primary key field updated. This is the preferred way to insert new entities into the database.
  • You can create a (nested) ProjectMember ProjectMember.CustomSearch object to obtain a query pre-populated with the correct tableinfo and return fields. This query can be modified with restrictions, etc. Then, use the static GetFromCustomSearch method to apply the query to the database and obtain the result as an Entity object. This is how you select existing entities from the database when you have a query that does not correspond to any of the existing database indexes.
  • For each unique index defined for the table, there is a corresponding GetFromIdx method to make retrieving data via the indexes easy. Note that if you try to fetch a row that does not exist (for instance, by using the primary key index and specifying a primary key that does not exist in the database), you will get a Row object with the SuperOffice.CRM.Data.ProjectMember.IsNew and SuperOffice.CRM.Data.ProjectMember.IsDirty properties set to true. Such an Entity object is called a 'ghost' and cannot be updated, saved or deleted. You can also get a ghost if the row does exist in the database, but the Sentry system denies Select rights to the row.
Non-unique indexes are handled through the ProjectMemberCollection collection, which has nested classes and GetFromIdx methods for each non-unique index. There are no 'GetFromReader' methods, since that would be rather complex (multiple TableInfo objects required).

Unique indexes on ProjectMember are:
Index fieldsNested index class name
ProjectmemberIdProjectmemberId:

Primary key

Nested index class: ProjectMember.IdxProjectmemberId

Static Get method: SuperOffice.CRM.Entities.ProjectMember.GetFromIdxProjectmemberId
Non-unique indexes on table ProjectMember are:
Index fieldsNested index class name
PersonIdPersonId:

person_id

Nested index class: ProjectMemberCollection.IdxPersonId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxPersonId
ContactIdContactId:

contact_id of person (denormalisation!)

Nested index class: ProjectMemberCollection.IdxContactId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxContactId
ProjectId, RankProjectId:

Parent project

Rank:

Rank in list (starts over for each project)

Nested index class: ProjectMemberCollection.IdxProjectIdRank

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxProjectIdRank

_memberType

Related HDB object(s).

Declaration
protected PMembTypeRow _memberType
Field Value
Type Description
PMembTypeRow
Remarks

Entity objects can be created in several ways.

  • Use the static CreateNew() method to create a new, empty object. After populating it with values, you call the SuperOffice.CRM.Data.ProjectMember.Save method and corresponding row(s) in the database are created, and the objects' primary key field updated. This is the preferred way to insert new entities into the database.
  • You can create a (nested) ProjectMember ProjectMember.CustomSearch object to obtain a query pre-populated with the correct tableinfo and return fields. This query can be modified with restrictions, etc. Then, use the static GetFromCustomSearch method to apply the query to the database and obtain the result as an Entity object. This is how you select existing entities from the database when you have a query that does not correspond to any of the existing database indexes.
  • For each unique index defined for the table, there is a corresponding GetFromIdx method to make retrieving data via the indexes easy. Note that if you try to fetch a row that does not exist (for instance, by using the primary key index and specifying a primary key that does not exist in the database), you will get a Row object with the SuperOffice.CRM.Data.ProjectMember.IsNew and SuperOffice.CRM.Data.ProjectMember.IsDirty properties set to true. Such an Entity object is called a 'ghost' and cannot be updated, saved or deleted. You can also get a ghost if the row does exist in the database, but the Sentry system denies Select rights to the row.
Non-unique indexes are handled through the ProjectMemberCollection collection, which has nested classes and GetFromIdx methods for each non-unique index. There are no 'GetFromReader' methods, since that would be rather complex (multiple TableInfo objects required).

Unique indexes on ProjectMember are:
Index fieldsNested index class name
ProjectmemberIdProjectmemberId:

Primary key

Nested index class: ProjectMember.IdxProjectmemberId

Static Get method: SuperOffice.CRM.Entities.ProjectMember.GetFromIdxProjectmemberId
Non-unique indexes on table ProjectMember are:
Index fieldsNested index class name
PersonIdPersonId:

person_id

Nested index class: ProjectMemberCollection.IdxPersonId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxPersonId
ContactIdContactId:

contact_id of person (denormalisation!)

Nested index class: ProjectMemberCollection.IdxContactId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxContactId
ProjectId, RankProjectId:

Parent project

Rank:

Rank in list (starts over for each project)

Nested index class: ProjectMemberCollection.IdxProjectIdRank

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxProjectIdRank

_person

Related HDB object(s).

Declaration
protected Person _person
Field Value
Type Description
Person
Remarks

Entity objects can be created in several ways.

  • Use the static CreateNew() method to create a new, empty object. After populating it with values, you call the SuperOffice.CRM.Data.ProjectMember.Save method and corresponding row(s) in the database are created, and the objects' primary key field updated. This is the preferred way to insert new entities into the database.
  • You can create a (nested) ProjectMember ProjectMember.CustomSearch object to obtain a query pre-populated with the correct tableinfo and return fields. This query can be modified with restrictions, etc. Then, use the static GetFromCustomSearch method to apply the query to the database and obtain the result as an Entity object. This is how you select existing entities from the database when you have a query that does not correspond to any of the existing database indexes.
  • For each unique index defined for the table, there is a corresponding GetFromIdx method to make retrieving data via the indexes easy. Note that if you try to fetch a row that does not exist (for instance, by using the primary key index and specifying a primary key that does not exist in the database), you will get a Row object with the SuperOffice.CRM.Data.ProjectMember.IsNew and SuperOffice.CRM.Data.ProjectMember.IsDirty properties set to true. Such an Entity object is called a 'ghost' and cannot be updated, saved or deleted. You can also get a ghost if the row does exist in the database, but the Sentry system denies Select rights to the row.
Non-unique indexes are handled through the ProjectMemberCollection collection, which has nested classes and GetFromIdx methods for each non-unique index. There are no 'GetFromReader' methods, since that would be rather complex (multiple TableInfo objects required).

Unique indexes on ProjectMember are:
Index fieldsNested index class name
ProjectmemberIdProjectmemberId:

Primary key

Nested index class: ProjectMember.IdxProjectmemberId

Static Get method: SuperOffice.CRM.Entities.ProjectMember.GetFromIdxProjectmemberId
Non-unique indexes on table ProjectMember are:
Index fieldsNested index class name
PersonIdPersonId:

person_id

Nested index class: ProjectMemberCollection.IdxPersonId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxPersonId
ContactIdContactId:

contact_id of person (denormalisation!)

Nested index class: ProjectMemberCollection.IdxContactId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxContactId
ProjectId, RankProjectId:

Parent project

Rank:

Rank in list (starts over for each project)

Nested index class: ProjectMemberCollection.IdxProjectIdRank

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxProjectIdRank

_project

Related HDB object(s).

Declaration
protected Project _project
Field Value
Type Description
Project
Remarks

Entity objects can be created in several ways.

  • Use the static CreateNew() method to create a new, empty object. After populating it with values, you call the SuperOffice.CRM.Data.ProjectMember.Save method and corresponding row(s) in the database are created, and the objects' primary key field updated. This is the preferred way to insert new entities into the database.
  • You can create a (nested) ProjectMember ProjectMember.CustomSearch object to obtain a query pre-populated with the correct tableinfo and return fields. This query can be modified with restrictions, etc. Then, use the static GetFromCustomSearch method to apply the query to the database and obtain the result as an Entity object. This is how you select existing entities from the database when you have a query that does not correspond to any of the existing database indexes.
  • For each unique index defined for the table, there is a corresponding GetFromIdx method to make retrieving data via the indexes easy. Note that if you try to fetch a row that does not exist (for instance, by using the primary key index and specifying a primary key that does not exist in the database), you will get a Row object with the SuperOffice.CRM.Data.ProjectMember.IsNew and SuperOffice.CRM.Data.ProjectMember.IsDirty properties set to true. Such an Entity object is called a 'ghost' and cannot be updated, saved or deleted. You can also get a ghost if the row does exist in the database, but the Sentry system denies Select rights to the row.
Non-unique indexes are handled through the ProjectMemberCollection collection, which has nested classes and GetFromIdx methods for each non-unique index. There are no 'GetFromReader' methods, since that would be rather complex (multiple TableInfo objects required).

Unique indexes on ProjectMember are:
Index fieldsNested index class name
ProjectmemberIdProjectmemberId:

Primary key

Nested index class: ProjectMember.IdxProjectmemberId

Static Get method: SuperOffice.CRM.Entities.ProjectMember.GetFromIdxProjectmemberId
Non-unique indexes on table ProjectMember are:
Index fieldsNested index class name
PersonIdPersonId:

person_id

Nested index class: ProjectMemberCollection.IdxPersonId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxPersonId
ContactIdContactId:

contact_id of person (denormalisation!)

Nested index class: ProjectMemberCollection.IdxContactId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxContactId
ProjectId, RankProjectId:

Parent project

Rank:

Rank in list (starts over for each project)

Nested index class: ProjectMemberCollection.IdxProjectIdRank

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxProjectIdRank

_row

HDB object this entity is a facade for.

Declaration
protected ProjectMemberRow _row
Field Value
Type Description
ProjectMemberRow
Remarks

Entity objects can be created in several ways.

  • Use the static CreateNew() method to create a new, empty object. After populating it with values, you call the SuperOffice.CRM.Data.ProjectMember.Save method and corresponding row(s) in the database are created, and the objects' primary key field updated. This is the preferred way to insert new entities into the database.
  • You can create a (nested) ProjectMember ProjectMember.CustomSearch object to obtain a query pre-populated with the correct tableinfo and return fields. This query can be modified with restrictions, etc. Then, use the static GetFromCustomSearch method to apply the query to the database and obtain the result as an Entity object. This is how you select existing entities from the database when you have a query that does not correspond to any of the existing database indexes.
  • For each unique index defined for the table, there is a corresponding GetFromIdx method to make retrieving data via the indexes easy. Note that if you try to fetch a row that does not exist (for instance, by using the primary key index and specifying a primary key that does not exist in the database), you will get a Row object with the SuperOffice.CRM.Data.ProjectMember.IsNew and SuperOffice.CRM.Data.ProjectMember.IsDirty properties set to true. Such an Entity object is called a 'ghost' and cannot be updated, saved or deleted. You can also get a ghost if the row does exist in the database, but the Sentry system denies Select rights to the row.
Non-unique indexes are handled through the ProjectMemberCollection collection, which has nested classes and GetFromIdx methods for each non-unique index. There are no 'GetFromReader' methods, since that would be rather complex (multiple TableInfo objects required).

Unique indexes on ProjectMember are:
Index fieldsNested index class name
ProjectmemberIdProjectmemberId:

Primary key

Nested index class: ProjectMember.IdxProjectmemberId

Static Get method: SuperOffice.CRM.Entities.ProjectMember.GetFromIdxProjectmemberId
Non-unique indexes on table ProjectMember are:
Index fieldsNested index class name
PersonIdPersonId:

person_id

Nested index class: ProjectMemberCollection.IdxPersonId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxPersonId
ContactIdContactId:

contact_id of person (denormalisation!)

Nested index class: ProjectMemberCollection.IdxContactId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxContactId
ProjectId, RankProjectId:

Parent project

Rank:

Rank in list (starts over for each project)

Nested index class: ProjectMemberCollection.IdxProjectIdRank

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxProjectIdRank

_rowIdx

Link-table between person and project

Entity Object for table 'projectmember'. Entity objects represent full entities with both the base table object and all related objects, such as and things like owner associate and whatever else is logically related to the base object.
Declaration
protected ProjectMember.ProjectMemberIdxBase _rowIdx
Field Value
Type Description
ProjectMember.ProjectMemberIdxBase
Remarks

Entity objects can be created in several ways.

  • Use the static CreateNew() method to create a new, empty object. After populating it with values, you call the SuperOffice.CRM.Data.ProjectMember.Save method and corresponding row(s) in the database are created, and the objects' primary key field updated. This is the preferred way to insert new entities into the database.
  • You can create a (nested) ProjectMember ProjectMember.CustomSearch object to obtain a query pre-populated with the correct tableinfo and return fields. This query can be modified with restrictions, etc. Then, use the static GetFromCustomSearch method to apply the query to the database and obtain the result as an Entity object. This is how you select existing entities from the database when you have a query that does not correspond to any of the existing database indexes.
  • For each unique index defined for the table, there is a corresponding GetFromIdx method to make retrieving data via the indexes easy. Note that if you try to fetch a row that does not exist (for instance, by using the primary key index and specifying a primary key that does not exist in the database), you will get a Row object with the SuperOffice.CRM.Data.ProjectMember.IsNew and SuperOffice.CRM.Data.ProjectMember.IsDirty properties set to true. Such an Entity object is called a 'ghost' and cannot be updated, saved or deleted. You can also get a ghost if the row does exist in the database, but the Sentry system denies Select rights to the row.
Non-unique indexes are handled through the ProjectMemberCollection collection, which has nested classes and GetFromIdx methods for each non-unique index. There are no 'GetFromReader' methods, since that would be rather complex (multiple TableInfo objects required).

Unique indexes on ProjectMember are:
Index fieldsNested index class name
ProjectmemberIdProjectmemberId:

Primary key

Nested index class: ProjectMember.IdxProjectmemberId

Static Get method: SuperOffice.CRM.Entities.ProjectMember.GetFromIdxProjectmemberId
Non-unique indexes on table ProjectMember are:
Index fieldsNested index class name
PersonIdPersonId:

person_id

Nested index class: ProjectMemberCollection.IdxPersonId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxPersonId
ContactIdContactId:

contact_id of person (denormalisation!)

Nested index class: ProjectMemberCollection.IdxContactId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxContactId
ProjectId, RankProjectId:

Parent project

Rank:

Rank in list (starts over for each project)

Nested index class: ProjectMemberCollection.IdxProjectIdRank

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxProjectIdRank

_text

Related HDB object(s).

Declaration
protected TextRow _text
Field Value
Type Description
TextRow
Remarks

Entity objects can be created in several ways.

  • Use the static CreateNew() method to create a new, empty object. After populating it with values, you call the SuperOffice.CRM.Data.ProjectMember.Save method and corresponding row(s) in the database are created, and the objects' primary key field updated. This is the preferred way to insert new entities into the database.
  • You can create a (nested) ProjectMember ProjectMember.CustomSearch object to obtain a query pre-populated with the correct tableinfo and return fields. This query can be modified with restrictions, etc. Then, use the static GetFromCustomSearch method to apply the query to the database and obtain the result as an Entity object. This is how you select existing entities from the database when you have a query that does not correspond to any of the existing database indexes.
  • For each unique index defined for the table, there is a corresponding GetFromIdx method to make retrieving data via the indexes easy. Note that if you try to fetch a row that does not exist (for instance, by using the primary key index and specifying a primary key that does not exist in the database), you will get a Row object with the SuperOffice.CRM.Data.ProjectMember.IsNew and SuperOffice.CRM.Data.ProjectMember.IsDirty properties set to true. Such an Entity object is called a 'ghost' and cannot be updated, saved or deleted. You can also get a ghost if the row does exist in the database, but the Sentry system denies Select rights to the row.
Non-unique indexes are handled through the ProjectMemberCollection collection, which has nested classes and GetFromIdx methods for each non-unique index. There are no 'GetFromReader' methods, since that would be rather complex (multiple TableInfo objects required).

Unique indexes on ProjectMember are:
Index fieldsNested index class name
ProjectmemberIdProjectmemberId:

Primary key

Nested index class: ProjectMember.IdxProjectmemberId

Static Get method: SuperOffice.CRM.Entities.ProjectMember.GetFromIdxProjectmemberId
Non-unique indexes on table ProjectMember are:
Index fieldsNested index class name
PersonIdPersonId:

person_id

Nested index class: ProjectMemberCollection.IdxPersonId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxPersonId
ContactIdContactId:

contact_id of person (denormalisation!)

Nested index class: ProjectMemberCollection.IdxContactId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxContactId
ProjectId, RankProjectId:

Parent project

Rank:

Rank in list (starts over for each project)

Nested index class: ProjectMemberCollection.IdxProjectIdRank

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxProjectIdRank

_updatedAssociate

Related HDB object(s).

Declaration
protected AssociateRow _updatedAssociate
Field Value
Type Description
AssociateRow
Remarks

Entity objects can be created in several ways.

  • Use the static CreateNew() method to create a new, empty object. After populating it with values, you call the SuperOffice.CRM.Data.ProjectMember.Save method and corresponding row(s) in the database are created, and the objects' primary key field updated. This is the preferred way to insert new entities into the database.
  • You can create a (nested) ProjectMember ProjectMember.CustomSearch object to obtain a query pre-populated with the correct tableinfo and return fields. This query can be modified with restrictions, etc. Then, use the static GetFromCustomSearch method to apply the query to the database and obtain the result as an Entity object. This is how you select existing entities from the database when you have a query that does not correspond to any of the existing database indexes.
  • For each unique index defined for the table, there is a corresponding GetFromIdx method to make retrieving data via the indexes easy. Note that if you try to fetch a row that does not exist (for instance, by using the primary key index and specifying a primary key that does not exist in the database), you will get a Row object with the SuperOffice.CRM.Data.ProjectMember.IsNew and SuperOffice.CRM.Data.ProjectMember.IsDirty properties set to true. Such an Entity object is called a 'ghost' and cannot be updated, saved or deleted. You can also get a ghost if the row does exist in the database, but the Sentry system denies Select rights to the row.
Non-unique indexes are handled through the ProjectMemberCollection collection, which has nested classes and GetFromIdx methods for each non-unique index. There are no 'GetFromReader' methods, since that would be rather complex (multiple TableInfo objects required).

Unique indexes on ProjectMember are:
Index fieldsNested index class name
ProjectmemberIdProjectmemberId:

Primary key

Nested index class: ProjectMember.IdxProjectmemberId

Static Get method: SuperOffice.CRM.Entities.ProjectMember.GetFromIdxProjectmemberId
Non-unique indexes on table ProjectMember are:
Index fieldsNested index class name
PersonIdPersonId:

person_id

Nested index class: ProjectMemberCollection.IdxPersonId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxPersonId
ContactIdContactId:

contact_id of person (denormalisation!)

Nested index class: ProjectMemberCollection.IdxContactId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxContactId
ProjectId, RankProjectId:

Parent project

Rank:

Rank in list (starts over for each project)

Nested index class: ProjectMemberCollection.IdxProjectIdRank

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxProjectIdRank

Properties

Contact

Related object Contact: Companies and Organisations

Declaration
public Contact Contact { get; set; }
Property Value
Type Description
Contact
Remarks

Entity objects can be created in several ways.

  • Use the static CreateNew() method to create a new, empty object. After populating it with values, you call the SuperOffice.CRM.Data.ProjectMember.Save method and corresponding row(s) in the database are created, and the objects' primary key field updated. This is the preferred way to insert new entities into the database.
  • You can create a (nested) ProjectMember ProjectMember.CustomSearch object to obtain a query pre-populated with the correct tableinfo and return fields. This query can be modified with restrictions, etc. Then, use the static GetFromCustomSearch method to apply the query to the database and obtain the result as an Entity object. This is how you select existing entities from the database when you have a query that does not correspond to any of the existing database indexes.
  • For each unique index defined for the table, there is a corresponding GetFromIdx method to make retrieving data via the indexes easy. Note that if you try to fetch a row that does not exist (for instance, by using the primary key index and specifying a primary key that does not exist in the database), you will get a Row object with the SuperOffice.CRM.Data.ProjectMember.IsNew and SuperOffice.CRM.Data.ProjectMember.IsDirty properties set to true. Such an Entity object is called a 'ghost' and cannot be updated, saved or deleted. You can also get a ghost if the row does exist in the database, but the Sentry system denies Select rights to the row.
Non-unique indexes are handled through the ProjectMemberCollection collection, which has nested classes and GetFromIdx methods for each non-unique index. There are no 'GetFromReader' methods, since that would be rather complex (multiple TableInfo objects required).

Unique indexes on ProjectMember are:
Index fieldsNested index class name
ProjectmemberIdProjectmemberId:

Primary key

Nested index class: ProjectMember.IdxProjectmemberId

Static Get method: SuperOffice.CRM.Entities.ProjectMember.GetFromIdxProjectmemberId
Non-unique indexes on table ProjectMember are:
Index fieldsNested index class name
PersonIdPersonId:

person_id

Nested index class: ProjectMemberCollection.IdxPersonId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxPersonId
ContactIdContactId:

contact_id of person (denormalisation!)

Nested index class: ProjectMemberCollection.IdxContactId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxContactId
ProjectId, RankProjectId:

Parent project

Rank:

Rank in list (starts over for each project)

Nested index class: ProjectMemberCollection.IdxProjectIdRank

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxProjectIdRank

CreatedAssociate

Related object AssociateRow: Employees, resources and other users - except for External persons

Declaration
public AssociateRow CreatedAssociate { get; set; }
Property Value
Type Description
AssociateRow
Remarks

Entity objects can be created in several ways.

  • Use the static CreateNew() method to create a new, empty object. After populating it with values, you call the SuperOffice.CRM.Data.ProjectMember.Save method and corresponding row(s) in the database are created, and the objects' primary key field updated. This is the preferred way to insert new entities into the database.
  • You can create a (nested) ProjectMember ProjectMember.CustomSearch object to obtain a query pre-populated with the correct tableinfo and return fields. This query can be modified with restrictions, etc. Then, use the static GetFromCustomSearch method to apply the query to the database and obtain the result as an Entity object. This is how you select existing entities from the database when you have a query that does not correspond to any of the existing database indexes.
  • For each unique index defined for the table, there is a corresponding GetFromIdx method to make retrieving data via the indexes easy. Note that if you try to fetch a row that does not exist (for instance, by using the primary key index and specifying a primary key that does not exist in the database), you will get a Row object with the SuperOffice.CRM.Data.ProjectMember.IsNew and SuperOffice.CRM.Data.ProjectMember.IsDirty properties set to true. Such an Entity object is called a 'ghost' and cannot be updated, saved or deleted. You can also get a ghost if the row does exist in the database, but the Sentry system denies Select rights to the row.
Non-unique indexes are handled through the ProjectMemberCollection collection, which has nested classes and GetFromIdx methods for each non-unique index. There are no 'GetFromReader' methods, since that would be rather complex (multiple TableInfo objects required).

Unique indexes on ProjectMember are:
Index fieldsNested index class name
ProjectmemberIdProjectmemberId:

Primary key

Nested index class: ProjectMember.IdxProjectmemberId

Static Get method: SuperOffice.CRM.Entities.ProjectMember.GetFromIdxProjectmemberId
Non-unique indexes on table ProjectMember are:
Index fieldsNested index class name
PersonIdPersonId:

person_id

Nested index class: ProjectMemberCollection.IdxPersonId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxPersonId
ContactIdContactId:

contact_id of person (denormalisation!)

Nested index class: ProjectMemberCollection.IdxContactId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxContactId
ProjectId, RankProjectId:

Parent project

Rank:

Rank in list (starts over for each project)

Nested index class: ProjectMemberCollection.IdxProjectIdRank

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxProjectIdRank

IsDeleted

Is the row deleted?

Declaration
public override bool IsDeleted { get; }
Property Value
Type Description
bool
Overrides
NestedPersist.IsDeleted
Remarks

Entity objects can be created in several ways.

  • Use the static CreateNew() method to create a new, empty object. After populating it with values, you call the SuperOffice.CRM.Data.ProjectMember.Save method and corresponding row(s) in the database are created, and the objects' primary key field updated. This is the preferred way to insert new entities into the database.
  • You can create a (nested) ProjectMember ProjectMember.CustomSearch object to obtain a query pre-populated with the correct tableinfo and return fields. This query can be modified with restrictions, etc. Then, use the static GetFromCustomSearch method to apply the query to the database and obtain the result as an Entity object. This is how you select existing entities from the database when you have a query that does not correspond to any of the existing database indexes.
  • For each unique index defined for the table, there is a corresponding GetFromIdx method to make retrieving data via the indexes easy. Note that if you try to fetch a row that does not exist (for instance, by using the primary key index and specifying a primary key that does not exist in the database), you will get a Row object with the SuperOffice.CRM.Data.ProjectMember.IsNew and SuperOffice.CRM.Data.ProjectMember.IsDirty properties set to true. Such an Entity object is called a 'ghost' and cannot be updated, saved or deleted. You can also get a ghost if the row does exist in the database, but the Sentry system denies Select rights to the row.
Non-unique indexes are handled through the ProjectMemberCollection collection, which has nested classes and GetFromIdx methods for each non-unique index. There are no 'GetFromReader' methods, since that would be rather complex (multiple TableInfo objects required).

Unique indexes on ProjectMember are:
Index fieldsNested index class name
ProjectmemberIdProjectmemberId:

Primary key

Nested index class: ProjectMember.IdxProjectmemberId

Static Get method: SuperOffice.CRM.Entities.ProjectMember.GetFromIdxProjectmemberId
Non-unique indexes on table ProjectMember are:
Index fieldsNested index class name
PersonIdPersonId:

person_id

Nested index class: ProjectMemberCollection.IdxPersonId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxPersonId
ContactIdContactId:

contact_id of person (denormalisation!)

Nested index class: ProjectMemberCollection.IdxContactId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxContactId
ProjectId, RankProjectId:

Parent project

Rank:

Rank in list (starts over for each project)

Nested index class: ProjectMemberCollection.IdxProjectIdRank

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxProjectIdRank

IsMarkedForDelete

Gets or sets a value indicating whether this instance is marked for delete.

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

true if this instance is marked for delete; otherwise, false.

Overrides
NestedPersist.IsMarkedForDelete
Remarks

Entity objects can be created in several ways.

  • Use the static CreateNew() method to create a new, empty object. After populating it with values, you call the SuperOffice.CRM.Data.ProjectMember.Save method and corresponding row(s) in the database are created, and the objects' primary key field updated. This is the preferred way to insert new entities into the database.
  • You can create a (nested) ProjectMember ProjectMember.CustomSearch object to obtain a query pre-populated with the correct tableinfo and return fields. This query can be modified with restrictions, etc. Then, use the static GetFromCustomSearch method to apply the query to the database and obtain the result as an Entity object. This is how you select existing entities from the database when you have a query that does not correspond to any of the existing database indexes.
  • For each unique index defined for the table, there is a corresponding GetFromIdx method to make retrieving data via the indexes easy. Note that if you try to fetch a row that does not exist (for instance, by using the primary key index and specifying a primary key that does not exist in the database), you will get a Row object with the SuperOffice.CRM.Data.ProjectMember.IsNew and SuperOffice.CRM.Data.ProjectMember.IsDirty properties set to true. Such an Entity object is called a 'ghost' and cannot be updated, saved or deleted. You can also get a ghost if the row does exist in the database, but the Sentry system denies Select rights to the row.
Non-unique indexes are handled through the ProjectMemberCollection collection, which has nested classes and GetFromIdx methods for each non-unique index. There are no 'GetFromReader' methods, since that would be rather complex (multiple TableInfo objects required).

Unique indexes on ProjectMember are:
Index fieldsNested index class name
ProjectmemberIdProjectmemberId:

Primary key

Nested index class: ProjectMember.IdxProjectmemberId

Static Get method: SuperOffice.CRM.Entities.ProjectMember.GetFromIdxProjectmemberId
Non-unique indexes on table ProjectMember are:
Index fieldsNested index class name
PersonIdPersonId:

person_id

Nested index class: ProjectMemberCollection.IdxPersonId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxPersonId
ContactIdContactId:

contact_id of person (denormalisation!)

Nested index class: ProjectMemberCollection.IdxContactId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxContactId
ProjectId, RankProjectId:

Parent project

Rank:

Rank in list (starts over for each project)

Nested index class: ProjectMemberCollection.IdxProjectIdRank

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxProjectIdRank

IsNew

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

Declaration
public override bool IsNew { get; }
Property Value
Type Description
bool
Overrides
EntityBase.IsNew
Remarks

Entity objects can be created in several ways.

  • Use the static CreateNew() method to create a new, empty object. After populating it with values, you call the SuperOffice.CRM.Data.ProjectMember.Save method and corresponding row(s) in the database are created, and the objects' primary key field updated. This is the preferred way to insert new entities into the database.
  • You can create a (nested) ProjectMember ProjectMember.CustomSearch object to obtain a query pre-populated with the correct tableinfo and return fields. This query can be modified with restrictions, etc. Then, use the static GetFromCustomSearch method to apply the query to the database and obtain the result as an Entity object. This is how you select existing entities from the database when you have a query that does not correspond to any of the existing database indexes.
  • For each unique index defined for the table, there is a corresponding GetFromIdx method to make retrieving data via the indexes easy. Note that if you try to fetch a row that does not exist (for instance, by using the primary key index and specifying a primary key that does not exist in the database), you will get a Row object with the SuperOffice.CRM.Data.ProjectMember.IsNew and SuperOffice.CRM.Data.ProjectMember.IsDirty properties set to true. Such an Entity object is called a 'ghost' and cannot be updated, saved or deleted. You can also get a ghost if the row does exist in the database, but the Sentry system denies Select rights to the row.
Non-unique indexes are handled through the ProjectMemberCollection collection, which has nested classes and GetFromIdx methods for each non-unique index. There are no 'GetFromReader' methods, since that would be rather complex (multiple TableInfo objects required).

Unique indexes on ProjectMember are:
Index fieldsNested index class name
ProjectmemberIdProjectmemberId:

Primary key

Nested index class: ProjectMember.IdxProjectmemberId

Static Get method: SuperOffice.CRM.Entities.ProjectMember.GetFromIdxProjectmemberId
Non-unique indexes on table ProjectMember are:
Index fieldsNested index class name
PersonIdPersonId:

person_id

Nested index class: ProjectMemberCollection.IdxPersonId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxPersonId
ContactIdContactId:

contact_id of person (denormalisation!)

Nested index class: ProjectMemberCollection.IdxContactId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxContactId
ProjectId, RankProjectId:

Parent project

Rank:

Rank in list (starts over for each project)

Nested index class: ProjectMemberCollection.IdxProjectIdRank

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxProjectIdRank

MainRow

Return the main row for the Entity.

Declaration
protected override TableRowBase MainRow { get; }
Property Value
Type Description
TableRowBase
Overrides
EntityBase.MainRow
Remarks

Entity objects can be created in several ways.

  • Use the static CreateNew() method to create a new, empty object. After populating it with values, you call the SuperOffice.CRM.Data.ProjectMember.Save method and corresponding row(s) in the database are created, and the objects' primary key field updated. This is the preferred way to insert new entities into the database.
  • You can create a (nested) ProjectMember ProjectMember.CustomSearch object to obtain a query pre-populated with the correct tableinfo and return fields. This query can be modified with restrictions, etc. Then, use the static GetFromCustomSearch method to apply the query to the database and obtain the result as an Entity object. This is how you select existing entities from the database when you have a query that does not correspond to any of the existing database indexes.
  • For each unique index defined for the table, there is a corresponding GetFromIdx method to make retrieving data via the indexes easy. Note that if you try to fetch a row that does not exist (for instance, by using the primary key index and specifying a primary key that does not exist in the database), you will get a Row object with the SuperOffice.CRM.Data.ProjectMember.IsNew and SuperOffice.CRM.Data.ProjectMember.IsDirty properties set to true. Such an Entity object is called a 'ghost' and cannot be updated, saved or deleted. You can also get a ghost if the row does exist in the database, but the Sentry system denies Select rights to the row.
Non-unique indexes are handled through the ProjectMemberCollection collection, which has nested classes and GetFromIdx methods for each non-unique index. There are no 'GetFromReader' methods, since that would be rather complex (multiple TableInfo objects required).

Unique indexes on ProjectMember are:
Index fieldsNested index class name
ProjectmemberIdProjectmemberId:

Primary key

Nested index class: ProjectMember.IdxProjectmemberId

Static Get method: SuperOffice.CRM.Entities.ProjectMember.GetFromIdxProjectmemberId
Non-unique indexes on table ProjectMember are:
Index fieldsNested index class name
PersonIdPersonId:

person_id

Nested index class: ProjectMemberCollection.IdxPersonId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxPersonId
ContactIdContactId:

contact_id of person (denormalisation!)

Nested index class: ProjectMemberCollection.IdxContactId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxContactId
ProjectId, RankProjectId:

Parent project

Rank:

Rank in list (starts over for each project)

Nested index class: ProjectMemberCollection.IdxProjectIdRank

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxProjectIdRank

MemberType

Related object PMembTypeRow: PMembType list table

Declaration
public PMembTypeRow MemberType { get; set; }
Property Value
Type Description
PMembTypeRow
Remarks

Entity objects can be created in several ways.

  • Use the static CreateNew() method to create a new, empty object. After populating it with values, you call the SuperOffice.CRM.Data.ProjectMember.Save method and corresponding row(s) in the database are created, and the objects' primary key field updated. This is the preferred way to insert new entities into the database.
  • You can create a (nested) ProjectMember ProjectMember.CustomSearch object to obtain a query pre-populated with the correct tableinfo and return fields. This query can be modified with restrictions, etc. Then, use the static GetFromCustomSearch method to apply the query to the database and obtain the result as an Entity object. This is how you select existing entities from the database when you have a query that does not correspond to any of the existing database indexes.
  • For each unique index defined for the table, there is a corresponding GetFromIdx method to make retrieving data via the indexes easy. Note that if you try to fetch a row that does not exist (for instance, by using the primary key index and specifying a primary key that does not exist in the database), you will get a Row object with the SuperOffice.CRM.Data.ProjectMember.IsNew and SuperOffice.CRM.Data.ProjectMember.IsDirty properties set to true. Such an Entity object is called a 'ghost' and cannot be updated, saved or deleted. You can also get a ghost if the row does exist in the database, but the Sentry system denies Select rights to the row.
Non-unique indexes are handled through the ProjectMemberCollection collection, which has nested classes and GetFromIdx methods for each non-unique index. There are no 'GetFromReader' methods, since that would be rather complex (multiple TableInfo objects required).

Unique indexes on ProjectMember are:
Index fieldsNested index class name
ProjectmemberIdProjectmemberId:

Primary key

Nested index class: ProjectMember.IdxProjectmemberId

Static Get method: SuperOffice.CRM.Entities.ProjectMember.GetFromIdxProjectmemberId
Non-unique indexes on table ProjectMember are:
Index fieldsNested index class name
PersonIdPersonId:

person_id

Nested index class: ProjectMemberCollection.IdxPersonId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxPersonId
ContactIdContactId:

contact_id of person (denormalisation!)

Nested index class: ProjectMemberCollection.IdxContactId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxContactId
ProjectId, RankProjectId:

Parent project

Rank:

Rank in list (starts over for each project)

Nested index class: ProjectMemberCollection.IdxProjectIdRank

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxProjectIdRank

Person

Related object Person: Persons in a company or an organisation

Declaration
public Person Person { get; set; }
Property Value
Type Description
Person
Remarks

Entity objects can be created in several ways.

  • Use the static CreateNew() method to create a new, empty object. After populating it with values, you call the SuperOffice.CRM.Data.ProjectMember.Save method and corresponding row(s) in the database are created, and the objects' primary key field updated. This is the preferred way to insert new entities into the database.
  • You can create a (nested) ProjectMember ProjectMember.CustomSearch object to obtain a query pre-populated with the correct tableinfo and return fields. This query can be modified with restrictions, etc. Then, use the static GetFromCustomSearch method to apply the query to the database and obtain the result as an Entity object. This is how you select existing entities from the database when you have a query that does not correspond to any of the existing database indexes.
  • For each unique index defined for the table, there is a corresponding GetFromIdx method to make retrieving data via the indexes easy. Note that if you try to fetch a row that does not exist (for instance, by using the primary key index and specifying a primary key that does not exist in the database), you will get a Row object with the SuperOffice.CRM.Data.ProjectMember.IsNew and SuperOffice.CRM.Data.ProjectMember.IsDirty properties set to true. Such an Entity object is called a 'ghost' and cannot be updated, saved or deleted. You can also get a ghost if the row does exist in the database, but the Sentry system denies Select rights to the row.
Non-unique indexes are handled through the ProjectMemberCollection collection, which has nested classes and GetFromIdx methods for each non-unique index. There are no 'GetFromReader' methods, since that would be rather complex (multiple TableInfo objects required).

Unique indexes on ProjectMember are:
Index fieldsNested index class name
ProjectmemberIdProjectmemberId:

Primary key

Nested index class: ProjectMember.IdxProjectmemberId

Static Get method: SuperOffice.CRM.Entities.ProjectMember.GetFromIdxProjectmemberId
Non-unique indexes on table ProjectMember are:
Index fieldsNested index class name
PersonIdPersonId:

person_id

Nested index class: ProjectMemberCollection.IdxPersonId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxPersonId
ContactIdContactId:

contact_id of person (denormalisation!)

Nested index class: ProjectMemberCollection.IdxContactId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxContactId
ProjectId, RankProjectId:

Parent project

Rank:

Rank in list (starts over for each project)

Nested index class: ProjectMemberCollection.IdxProjectIdRank

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxProjectIdRank

Project

Related object Project: Projects

Declaration
public Project Project { get; set; }
Property Value
Type Description
Project
Remarks

Entity objects can be created in several ways.

  • Use the static CreateNew() method to create a new, empty object. After populating it with values, you call the SuperOffice.CRM.Data.ProjectMember.Save method and corresponding row(s) in the database are created, and the objects' primary key field updated. This is the preferred way to insert new entities into the database.
  • You can create a (nested) ProjectMember ProjectMember.CustomSearch object to obtain a query pre-populated with the correct tableinfo and return fields. This query can be modified with restrictions, etc. Then, use the static GetFromCustomSearch method to apply the query to the database and obtain the result as an Entity object. This is how you select existing entities from the database when you have a query that does not correspond to any of the existing database indexes.
  • For each unique index defined for the table, there is a corresponding GetFromIdx method to make retrieving data via the indexes easy. Note that if you try to fetch a row that does not exist (for instance, by using the primary key index and specifying a primary key that does not exist in the database), you will get a Row object with the SuperOffice.CRM.Data.ProjectMember.IsNew and SuperOffice.CRM.Data.ProjectMember.IsDirty properties set to true. Such an Entity object is called a 'ghost' and cannot be updated, saved or deleted. You can also get a ghost if the row does exist in the database, but the Sentry system denies Select rights to the row.
Non-unique indexes are handled through the ProjectMemberCollection collection, which has nested classes and GetFromIdx methods for each non-unique index. There are no 'GetFromReader' methods, since that would be rather complex (multiple TableInfo objects required).

Unique indexes on ProjectMember are:
Index fieldsNested index class name
ProjectmemberIdProjectmemberId:

Primary key

Nested index class: ProjectMember.IdxProjectmemberId

Static Get method: SuperOffice.CRM.Entities.ProjectMember.GetFromIdxProjectmemberId
Non-unique indexes on table ProjectMember are:
Index fieldsNested index class name
PersonIdPersonId:

person_id

Nested index class: ProjectMemberCollection.IdxPersonId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxPersonId
ContactIdContactId:

contact_id of person (denormalisation!)

Nested index class: ProjectMemberCollection.IdxContactId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxContactId
ProjectId, RankProjectId:

Parent project

Rank:

Rank in list (starts over for each project)

Nested index class: ProjectMemberCollection.IdxProjectIdRank

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxProjectIdRank

ProjectmemberId

Primary key

Declaration
public int ProjectmemberId { get; }
Property Value
Type Description
int
Remarks

Entity objects can be created in several ways.

  • Use the static CreateNew() method to create a new, empty object. After populating it with values, you call the SuperOffice.CRM.Data.ProjectMember.Save method and corresponding row(s) in the database are created, and the objects' primary key field updated. This is the preferred way to insert new entities into the database.
  • You can create a (nested) ProjectMember ProjectMember.CustomSearch object to obtain a query pre-populated with the correct tableinfo and return fields. This query can be modified with restrictions, etc. Then, use the static GetFromCustomSearch method to apply the query to the database and obtain the result as an Entity object. This is how you select existing entities from the database when you have a query that does not correspond to any of the existing database indexes.
  • For each unique index defined for the table, there is a corresponding GetFromIdx method to make retrieving data via the indexes easy. Note that if you try to fetch a row that does not exist (for instance, by using the primary key index and specifying a primary key that does not exist in the database), you will get a Row object with the SuperOffice.CRM.Data.ProjectMember.IsNew and SuperOffice.CRM.Data.ProjectMember.IsDirty properties set to true. Such an Entity object is called a 'ghost' and cannot be updated, saved or deleted. You can also get a ghost if the row does exist in the database, but the Sentry system denies Select rights to the row.
Non-unique indexes are handled through the ProjectMemberCollection collection, which has nested classes and GetFromIdx methods for each non-unique index. There are no 'GetFromReader' methods, since that would be rather complex (multiple TableInfo objects required).

Unique indexes on ProjectMember are:
Index fieldsNested index class name
ProjectmemberIdProjectmemberId:

Primary key

Nested index class: ProjectMember.IdxProjectmemberId

Static Get method: SuperOffice.CRM.Entities.ProjectMember.GetFromIdxProjectmemberId
Non-unique indexes on table ProjectMember are:
Index fieldsNested index class name
PersonIdPersonId:

person_id

Nested index class: ProjectMemberCollection.IdxPersonId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxPersonId
ContactIdContactId:

contact_id of person (denormalisation!)

Nested index class: ProjectMemberCollection.IdxContactId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxContactId
ProjectId, RankProjectId:

Parent project

Rank:

Rank in list (starts over for each project)

Nested index class: ProjectMemberCollection.IdxProjectIdRank

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxProjectIdRank

Rank

Rank in list

Declaration
public short Rank { get; set; }
Property Value
Type Description
short
Remarks

Entity objects can be created in several ways.

  • Use the static CreateNew() method to create a new, empty object. After populating it with values, you call the SuperOffice.CRM.Data.ProjectMember.Save method and corresponding row(s) in the database are created, and the objects' primary key field updated. This is the preferred way to insert new entities into the database.
  • You can create a (nested) ProjectMember ProjectMember.CustomSearch object to obtain a query pre-populated with the correct tableinfo and return fields. This query can be modified with restrictions, etc. Then, use the static GetFromCustomSearch method to apply the query to the database and obtain the result as an Entity object. This is how you select existing entities from the database when you have a query that does not correspond to any of the existing database indexes.
  • For each unique index defined for the table, there is a corresponding GetFromIdx method to make retrieving data via the indexes easy. Note that if you try to fetch a row that does not exist (for instance, by using the primary key index and specifying a primary key that does not exist in the database), you will get a Row object with the SuperOffice.CRM.Data.ProjectMember.IsNew and SuperOffice.CRM.Data.ProjectMember.IsDirty properties set to true. Such an Entity object is called a 'ghost' and cannot be updated, saved or deleted. You can also get a ghost if the row does exist in the database, but the Sentry system denies Select rights to the row.
Non-unique indexes are handled through the ProjectMemberCollection collection, which has nested classes and GetFromIdx methods for each non-unique index. There are no 'GetFromReader' methods, since that would be rather complex (multiple TableInfo objects required).

Unique indexes on ProjectMember are:
Index fieldsNested index class name
ProjectmemberIdProjectmemberId:

Primary key

Nested index class: ProjectMember.IdxProjectmemberId

Static Get method: SuperOffice.CRM.Entities.ProjectMember.GetFromIdxProjectmemberId
Non-unique indexes on table ProjectMember are:
Index fieldsNested index class name
PersonIdPersonId:

person_id

Nested index class: ProjectMemberCollection.IdxPersonId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxPersonId
ContactIdContactId:

contact_id of person (denormalisation!)

Nested index class: ProjectMemberCollection.IdxContactId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxContactId
ProjectId, RankProjectId:

Parent project

Rank:

Rank in list (starts over for each project)

Nested index class: ProjectMemberCollection.IdxProjectIdRank

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxProjectIdRank

Registered

Registered when

Declaration
public DateTime Registered { get; set; }
Property Value
Type Description
DateTime
Remarks

Entity objects can be created in several ways.

  • Use the static CreateNew() method to create a new, empty object. After populating it with values, you call the SuperOffice.CRM.Data.ProjectMember.Save method and corresponding row(s) in the database are created, and the objects' primary key field updated. This is the preferred way to insert new entities into the database.
  • You can create a (nested) ProjectMember ProjectMember.CustomSearch object to obtain a query pre-populated with the correct tableinfo and return fields. This query can be modified with restrictions, etc. Then, use the static GetFromCustomSearch method to apply the query to the database and obtain the result as an Entity object. This is how you select existing entities from the database when you have a query that does not correspond to any of the existing database indexes.
  • For each unique index defined for the table, there is a corresponding GetFromIdx method to make retrieving data via the indexes easy. Note that if you try to fetch a row that does not exist (for instance, by using the primary key index and specifying a primary key that does not exist in the database), you will get a Row object with the SuperOffice.CRM.Data.ProjectMember.IsNew and SuperOffice.CRM.Data.ProjectMember.IsDirty properties set to true. Such an Entity object is called a 'ghost' and cannot be updated, saved or deleted. You can also get a ghost if the row does exist in the database, but the Sentry system denies Select rights to the row.
Non-unique indexes are handled through the ProjectMemberCollection collection, which has nested classes and GetFromIdx methods for each non-unique index. There are no 'GetFromReader' methods, since that would be rather complex (multiple TableInfo objects required).

Unique indexes on ProjectMember are:
Index fieldsNested index class name
ProjectmemberIdProjectmemberId:

Primary key

Nested index class: ProjectMember.IdxProjectmemberId

Static Get method: SuperOffice.CRM.Entities.ProjectMember.GetFromIdxProjectmemberId
Non-unique indexes on table ProjectMember are:
Index fieldsNested index class name
PersonIdPersonId:

person_id

Nested index class: ProjectMemberCollection.IdxPersonId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxPersonId
ContactIdContactId:

contact_id of person (denormalisation!)

Nested index class: ProjectMemberCollection.IdxContactId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxContactId
ProjectId, RankProjectId:

Parent project

Rank:

Rank in list (starts over for each project)

Nested index class: ProjectMemberCollection.IdxProjectIdRank

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxProjectIdRank

Row

The encapsulated object ProjectMemberRow.

Declaration
public ProjectMemberRow Row { get; }
Property Value
Type Description
ProjectMemberRow
Remarks

Entity objects can be created in several ways.

  • Use the static CreateNew() method to create a new, empty object. After populating it with values, you call the SuperOffice.CRM.Data.ProjectMember.Save method and corresponding row(s) in the database are created, and the objects' primary key field updated. This is the preferred way to insert new entities into the database.
  • You can create a (nested) ProjectMember ProjectMember.CustomSearch object to obtain a query pre-populated with the correct tableinfo and return fields. This query can be modified with restrictions, etc. Then, use the static GetFromCustomSearch method to apply the query to the database and obtain the result as an Entity object. This is how you select existing entities from the database when you have a query that does not correspond to any of the existing database indexes.
  • For each unique index defined for the table, there is a corresponding GetFromIdx method to make retrieving data via the indexes easy. Note that if you try to fetch a row that does not exist (for instance, by using the primary key index and specifying a primary key that does not exist in the database), you will get a Row object with the SuperOffice.CRM.Data.ProjectMember.IsNew and SuperOffice.CRM.Data.ProjectMember.IsDirty properties set to true. Such an Entity object is called a 'ghost' and cannot be updated, saved or deleted. You can also get a ghost if the row does exist in the database, but the Sentry system denies Select rights to the row.
Non-unique indexes are handled through the ProjectMemberCollection collection, which has nested classes and GetFromIdx methods for each non-unique index. There are no 'GetFromReader' methods, since that would be rather complex (multiple TableInfo objects required).

Unique indexes on ProjectMember are:
Index fieldsNested index class name
ProjectmemberIdProjectmemberId:

Primary key

Nested index class: ProjectMember.IdxProjectmemberId

Static Get method: SuperOffice.CRM.Entities.ProjectMember.GetFromIdxProjectmemberId
Non-unique indexes on table ProjectMember are:
Index fieldsNested index class name
PersonIdPersonId:

person_id

Nested index class: ProjectMemberCollection.IdxPersonId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxPersonId
ContactIdContactId:

contact_id of person (denormalisation!)

Nested index class: ProjectMemberCollection.IdxContactId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxContactId
ProjectId, RankProjectId:

Parent project

Rank:

Rank in list (starts over for each project)

Nested index class: ProjectMemberCollection.IdxProjectIdRank

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxProjectIdRank

TableInfo

Get a TableInfo object for the projectMember table.

Declaration
public ProjectMemberTableInfo TableInfo { get; }
Property Value
Type Description
ProjectMemberTableInfo
Remarks

Entity objects can be created in several ways.

  • Use the static CreateNew() method to create a new, empty object. After populating it with values, you call the SuperOffice.CRM.Data.ProjectMember.Save method and corresponding row(s) in the database are created, and the objects' primary key field updated. This is the preferred way to insert new entities into the database.
  • You can create a (nested) ProjectMember ProjectMember.CustomSearch object to obtain a query pre-populated with the correct tableinfo and return fields. This query can be modified with restrictions, etc. Then, use the static GetFromCustomSearch method to apply the query to the database and obtain the result as an Entity object. This is how you select existing entities from the database when you have a query that does not correspond to any of the existing database indexes.
  • For each unique index defined for the table, there is a corresponding GetFromIdx method to make retrieving data via the indexes easy. Note that if you try to fetch a row that does not exist (for instance, by using the primary key index and specifying a primary key that does not exist in the database), you will get a Row object with the SuperOffice.CRM.Data.ProjectMember.IsNew and SuperOffice.CRM.Data.ProjectMember.IsDirty properties set to true. Such an Entity object is called a 'ghost' and cannot be updated, saved or deleted. You can also get a ghost if the row does exist in the database, but the Sentry system denies Select rights to the row.
Non-unique indexes are handled through the ProjectMemberCollection collection, which has nested classes and GetFromIdx methods for each non-unique index. There are no 'GetFromReader' methods, since that would be rather complex (multiple TableInfo objects required).

Unique indexes on ProjectMember are:
Index fieldsNested index class name
ProjectmemberIdProjectmemberId:

Primary key

Nested index class: ProjectMember.IdxProjectmemberId

Static Get method: SuperOffice.CRM.Entities.ProjectMember.GetFromIdxProjectmemberId
Non-unique indexes on table ProjectMember are:
Index fieldsNested index class name
PersonIdPersonId:

person_id

Nested index class: ProjectMemberCollection.IdxPersonId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxPersonId
ContactIdContactId:

contact_id of person (denormalisation!)

Nested index class: ProjectMemberCollection.IdxContactId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxContactId
ProjectId, RankProjectId:

Parent project

Rank:

Rank in list (starts over for each project)

Nested index class: ProjectMemberCollection.IdxProjectIdRank

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxProjectIdRank

Text

Related object TextRow: Long text fields from all over the system

Declaration
public TextRow Text { get; set; }
Property Value
Type Description
TextRow
Remarks

Entity objects can be created in several ways.

  • Use the static CreateNew() method to create a new, empty object. After populating it with values, you call the SuperOffice.CRM.Data.ProjectMember.Save method and corresponding row(s) in the database are created, and the objects' primary key field updated. This is the preferred way to insert new entities into the database.
  • You can create a (nested) ProjectMember ProjectMember.CustomSearch object to obtain a query pre-populated with the correct tableinfo and return fields. This query can be modified with restrictions, etc. Then, use the static GetFromCustomSearch method to apply the query to the database and obtain the result as an Entity object. This is how you select existing entities from the database when you have a query that does not correspond to any of the existing database indexes.
  • For each unique index defined for the table, there is a corresponding GetFromIdx method to make retrieving data via the indexes easy. Note that if you try to fetch a row that does not exist (for instance, by using the primary key index and specifying a primary key that does not exist in the database), you will get a Row object with the SuperOffice.CRM.Data.ProjectMember.IsNew and SuperOffice.CRM.Data.ProjectMember.IsDirty properties set to true. Such an Entity object is called a 'ghost' and cannot be updated, saved or deleted. You can also get a ghost if the row does exist in the database, but the Sentry system denies Select rights to the row.
Non-unique indexes are handled through the ProjectMemberCollection collection, which has nested classes and GetFromIdx methods for each non-unique index. There are no 'GetFromReader' methods, since that would be rather complex (multiple TableInfo objects required).

Unique indexes on ProjectMember are:
Index fieldsNested index class name
ProjectmemberIdProjectmemberId:

Primary key

Nested index class: ProjectMember.IdxProjectmemberId

Static Get method: SuperOffice.CRM.Entities.ProjectMember.GetFromIdxProjectmemberId
Non-unique indexes on table ProjectMember are:
Index fieldsNested index class name
PersonIdPersonId:

person_id

Nested index class: ProjectMemberCollection.IdxPersonId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxPersonId
ContactIdContactId:

contact_id of person (denormalisation!)

Nested index class: ProjectMemberCollection.IdxContactId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxContactId
ProjectId, RankProjectId:

Parent project

Rank:

Rank in list (starts over for each project)

Nested index class: ProjectMemberCollection.IdxProjectIdRank

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxProjectIdRank

Updated

Last updated when

Declaration
public DateTime Updated { get; set; }
Property Value
Type Description
DateTime
Remarks

Entity objects can be created in several ways.

  • Use the static CreateNew() method to create a new, empty object. After populating it with values, you call the SuperOffice.CRM.Data.ProjectMember.Save method and corresponding row(s) in the database are created, and the objects' primary key field updated. This is the preferred way to insert new entities into the database.
  • You can create a (nested) ProjectMember ProjectMember.CustomSearch object to obtain a query pre-populated with the correct tableinfo and return fields. This query can be modified with restrictions, etc. Then, use the static GetFromCustomSearch method to apply the query to the database and obtain the result as an Entity object. This is how you select existing entities from the database when you have a query that does not correspond to any of the existing database indexes.
  • For each unique index defined for the table, there is a corresponding GetFromIdx method to make retrieving data via the indexes easy. Note that if you try to fetch a row that does not exist (for instance, by using the primary key index and specifying a primary key that does not exist in the database), you will get a Row object with the SuperOffice.CRM.Data.ProjectMember.IsNew and SuperOffice.CRM.Data.ProjectMember.IsDirty properties set to true. Such an Entity object is called a 'ghost' and cannot be updated, saved or deleted. You can also get a ghost if the row does exist in the database, but the Sentry system denies Select rights to the row.
Non-unique indexes are handled through the ProjectMemberCollection collection, which has nested classes and GetFromIdx methods for each non-unique index. There are no 'GetFromReader' methods, since that would be rather complex (multiple TableInfo objects required).

Unique indexes on ProjectMember are:
Index fieldsNested index class name
ProjectmemberIdProjectmemberId:

Primary key

Nested index class: ProjectMember.IdxProjectmemberId

Static Get method: SuperOffice.CRM.Entities.ProjectMember.GetFromIdxProjectmemberId
Non-unique indexes on table ProjectMember are:
Index fieldsNested index class name
PersonIdPersonId:

person_id

Nested index class: ProjectMemberCollection.IdxPersonId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxPersonId
ContactIdContactId:

contact_id of person (denormalisation!)

Nested index class: ProjectMemberCollection.IdxContactId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxContactId
ProjectId, RankProjectId:

Parent project

Rank:

Rank in list (starts over for each project)

Nested index class: ProjectMemberCollection.IdxProjectIdRank

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxProjectIdRank

UpdatedAssociate

Related object AssociateRow: Employees, resources and other users - except for External persons

Declaration
public AssociateRow UpdatedAssociate { get; set; }
Property Value
Type Description
AssociateRow
Remarks

Entity objects can be created in several ways.

  • Use the static CreateNew() method to create a new, empty object. After populating it with values, you call the SuperOffice.CRM.Data.ProjectMember.Save method and corresponding row(s) in the database are created, and the objects' primary key field updated. This is the preferred way to insert new entities into the database.
  • You can create a (nested) ProjectMember ProjectMember.CustomSearch object to obtain a query pre-populated with the correct tableinfo and return fields. This query can be modified with restrictions, etc. Then, use the static GetFromCustomSearch method to apply the query to the database and obtain the result as an Entity object. This is how you select existing entities from the database when you have a query that does not correspond to any of the existing database indexes.
  • For each unique index defined for the table, there is a corresponding GetFromIdx method to make retrieving data via the indexes easy. Note that if you try to fetch a row that does not exist (for instance, by using the primary key index and specifying a primary key that does not exist in the database), you will get a Row object with the SuperOffice.CRM.Data.ProjectMember.IsNew and SuperOffice.CRM.Data.ProjectMember.IsDirty properties set to true. Such an Entity object is called a 'ghost' and cannot be updated, saved or deleted. You can also get a ghost if the row does exist in the database, but the Sentry system denies Select rights to the row.
Non-unique indexes are handled through the ProjectMemberCollection collection, which has nested classes and GetFromIdx methods for each non-unique index. There are no 'GetFromReader' methods, since that would be rather complex (multiple TableInfo objects required).

Unique indexes on ProjectMember are:
Index fieldsNested index class name
ProjectmemberIdProjectmemberId:

Primary key

Nested index class: ProjectMember.IdxProjectmemberId

Static Get method: SuperOffice.CRM.Entities.ProjectMember.GetFromIdxProjectmemberId
Non-unique indexes on table ProjectMember are:
Index fieldsNested index class name
PersonIdPersonId:

person_id

Nested index class: ProjectMemberCollection.IdxPersonId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxPersonId
ContactIdContactId:

contact_id of person (denormalisation!)

Nested index class: ProjectMemberCollection.IdxContactId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxContactId
ProjectId, RankProjectId:

Parent project

Rank:

Rank in list (starts over for each project)

Nested index class: ProjectMemberCollection.IdxProjectIdRank

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxProjectIdRank

UpdatedCount

Link-table between person and project

Entity Object for table 'projectmember'. Entity objects represent full entities with both the base table object and all related objects, such as and things like owner associate and whatever else is logically related to the base object.
Declaration
public short UpdatedCount { get; set; }
Property Value
Type Description
short
Remarks

Entity objects can be created in several ways.

  • Use the static CreateNew() method to create a new, empty object. After populating it with values, you call the SuperOffice.CRM.Data.ProjectMember.Save method and corresponding row(s) in the database are created, and the objects' primary key field updated. This is the preferred way to insert new entities into the database.
  • You can create a (nested) ProjectMember ProjectMember.CustomSearch object to obtain a query pre-populated with the correct tableinfo and return fields. This query can be modified with restrictions, etc. Then, use the static GetFromCustomSearch method to apply the query to the database and obtain the result as an Entity object. This is how you select existing entities from the database when you have a query that does not correspond to any of the existing database indexes.
  • For each unique index defined for the table, there is a corresponding GetFromIdx method to make retrieving data via the indexes easy. Note that if you try to fetch a row that does not exist (for instance, by using the primary key index and specifying a primary key that does not exist in the database), you will get a Row object with the SuperOffice.CRM.Data.ProjectMember.IsNew and SuperOffice.CRM.Data.ProjectMember.IsDirty properties set to true. Such an Entity object is called a 'ghost' and cannot be updated, saved or deleted. You can also get a ghost if the row does exist in the database, but the Sentry system denies Select rights to the row.
Non-unique indexes are handled through the ProjectMemberCollection collection, which has nested classes and GetFromIdx methods for each non-unique index. There are no 'GetFromReader' methods, since that would be rather complex (multiple TableInfo objects required).

Unique indexes on ProjectMember are:
Index fieldsNested index class name
ProjectmemberIdProjectmemberId:

Primary key

Nested index class: ProjectMember.IdxProjectmemberId

Static Get method: SuperOffice.CRM.Entities.ProjectMember.GetFromIdxProjectmemberId
Non-unique indexes on table ProjectMember are:
Index fieldsNested index class name
PersonIdPersonId:

person_id

Nested index class: ProjectMemberCollection.IdxPersonId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxPersonId
ContactIdContactId:

contact_id of person (denormalisation!)

Nested index class: ProjectMemberCollection.IdxContactId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxContactId
ProjectId, RankProjectId:

Parent project

Rank:

Rank in list (starts over for each project)

Nested index class: ProjectMemberCollection.IdxProjectIdRank

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxProjectIdRank

Methods

CreateNew()

Create a new instance of the ProjectMember entity.

Declaration
public static ProjectMember CreateNew()
Returns
Type Description
ProjectMember

A new instance of the ProjectMember entity.

Remarks

Entity objects can be created in several ways.

  • Use the static CreateNew() method to create a new, empty object. After populating it with values, you call the SuperOffice.CRM.Data.ProjectMember.Save method and corresponding row(s) in the database are created, and the objects' primary key field updated. This is the preferred way to insert new entities into the database.
  • You can create a (nested) ProjectMember ProjectMember.CustomSearch object to obtain a query pre-populated with the correct tableinfo and return fields. This query can be modified with restrictions, etc. Then, use the static GetFromCustomSearch method to apply the query to the database and obtain the result as an Entity object. This is how you select existing entities from the database when you have a query that does not correspond to any of the existing database indexes.
  • For each unique index defined for the table, there is a corresponding GetFromIdx method to make retrieving data via the indexes easy. Note that if you try to fetch a row that does not exist (for instance, by using the primary key index and specifying a primary key that does not exist in the database), you will get a Row object with the SuperOffice.CRM.Data.ProjectMember.IsNew and SuperOffice.CRM.Data.ProjectMember.IsDirty properties set to true. Such an Entity object is called a 'ghost' and cannot be updated, saved or deleted. You can also get a ghost if the row does exist in the database, but the Sentry system denies Select rights to the row.
Non-unique indexes are handled through the ProjectMemberCollection collection, which has nested classes and GetFromIdx methods for each non-unique index. There are no 'GetFromReader' methods, since that would be rather complex (multiple TableInfo objects required).

Unique indexes on ProjectMember are:
Index fieldsNested index class name
ProjectmemberIdProjectmemberId:

Primary key

Nested index class: ProjectMember.IdxProjectmemberId

Static Get method: SuperOffice.CRM.Entities.ProjectMember.GetFromIdxProjectmemberId
Non-unique indexes on table ProjectMember are:
Index fieldsNested index class name
PersonIdPersonId:

person_id

Nested index class: ProjectMemberCollection.IdxPersonId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxPersonId
ContactIdContactId:

contact_id of person (denormalisation!)

Nested index class: ProjectMemberCollection.IdxContactId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxContactId
ProjectId, RankProjectId:

Parent project

Rank:

Rank in list (starts over for each project)

Nested index class: ProjectMemberCollection.IdxProjectIdRank

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxProjectIdRank

CreateNew(ProjectMemberIdxBase)

Create a new instance of the ProjectMember entity, by reading from the database using the specified index (represented by a nested index class).

Declaration
public static ProjectMember CreateNew(ProjectMember.ProjectMemberIdxBase idx)
Parameters
Type Name Description
ProjectMember.ProjectMemberIdxBase idx

Index search, represented by a subclass if the ProjectMember.ProjectMemberIdxBase nested index class

Returns
Type Description
ProjectMember

A new instance of the ProjectMember entity.

Remarks

Entity objects can be created in several ways.

  • Use the static CreateNew() method to create a new, empty object. After populating it with values, you call the SuperOffice.CRM.Data.ProjectMember.Save method and corresponding row(s) in the database are created, and the objects' primary key field updated. This is the preferred way to insert new entities into the database.
  • You can create a (nested) ProjectMember ProjectMember.CustomSearch object to obtain a query pre-populated with the correct tableinfo and return fields. This query can be modified with restrictions, etc. Then, use the static GetFromCustomSearch method to apply the query to the database and obtain the result as an Entity object. This is how you select existing entities from the database when you have a query that does not correspond to any of the existing database indexes.
  • For each unique index defined for the table, there is a corresponding GetFromIdx method to make retrieving data via the indexes easy. Note that if you try to fetch a row that does not exist (for instance, by using the primary key index and specifying a primary key that does not exist in the database), you will get a Row object with the SuperOffice.CRM.Data.ProjectMember.IsNew and SuperOffice.CRM.Data.ProjectMember.IsDirty properties set to true. Such an Entity object is called a 'ghost' and cannot be updated, saved or deleted. You can also get a ghost if the row does exist in the database, but the Sentry system denies Select rights to the row.
Non-unique indexes are handled through the ProjectMemberCollection collection, which has nested classes and GetFromIdx methods for each non-unique index. There are no 'GetFromReader' methods, since that would be rather complex (multiple TableInfo objects required).

Unique indexes on ProjectMember are:
Index fieldsNested index class name
ProjectmemberIdProjectmemberId:

Primary key

Nested index class: ProjectMember.IdxProjectmemberId

Static Get method: SuperOffice.CRM.Entities.ProjectMember.GetFromIdxProjectmemberId
Non-unique indexes on table ProjectMember are:
Index fieldsNested index class name
PersonIdPersonId:

person_id

Nested index class: ProjectMemberCollection.IdxPersonId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxPersonId
ContactIdContactId:

contact_id of person (denormalisation!)

Nested index class: ProjectMemberCollection.IdxContactId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxContactId
ProjectId, RankProjectId:

Parent project

Rank:

Rank in list (starts over for each project)

Nested index class: ProjectMemberCollection.IdxProjectIdRank

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxProjectIdRank

DeleteAsync()

Delete the row.

Declaration
public override Task DeleteAsync()
Returns
Type Description
Task
Overrides
EntityBase.DeleteAsync()
Remarks

Entity objects can be created in several ways.

  • Use the static CreateNew() method to create a new, empty object. After populating it with values, you call the SuperOffice.CRM.Data.ProjectMember.Save method and corresponding row(s) in the database are created, and the objects' primary key field updated. This is the preferred way to insert new entities into the database.
  • You can create a (nested) ProjectMember ProjectMember.CustomSearch object to obtain a query pre-populated with the correct tableinfo and return fields. This query can be modified with restrictions, etc. Then, use the static GetFromCustomSearch method to apply the query to the database and obtain the result as an Entity object. This is how you select existing entities from the database when you have a query that does not correspond to any of the existing database indexes.
  • For each unique index defined for the table, there is a corresponding GetFromIdx method to make retrieving data via the indexes easy. Note that if you try to fetch a row that does not exist (for instance, by using the primary key index and specifying a primary key that does not exist in the database), you will get a Row object with the SuperOffice.CRM.Data.ProjectMember.IsNew and SuperOffice.CRM.Data.ProjectMember.IsDirty properties set to true. Such an Entity object is called a 'ghost' and cannot be updated, saved or deleted. You can also get a ghost if the row does exist in the database, but the Sentry system denies Select rights to the row.
Non-unique indexes are handled through the ProjectMemberCollection collection, which has nested classes and GetFromIdx methods for each non-unique index. There are no 'GetFromReader' methods, since that would be rather complex (multiple TableInfo objects required).

Unique indexes on ProjectMember are:
Index fieldsNested index class name
ProjectmemberIdProjectmemberId:

Primary key

Nested index class: ProjectMember.IdxProjectmemberId

Static Get method: SuperOffice.CRM.Entities.ProjectMember.GetFromIdxProjectmemberId
Non-unique indexes on table ProjectMember are:
Index fieldsNested index class name
PersonIdPersonId:

person_id

Nested index class: ProjectMemberCollection.IdxPersonId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxPersonId
ContactIdContactId:

contact_id of person (denormalisation!)

Nested index class: ProjectMemberCollection.IdxContactId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxContactId
ProjectId, RankProjectId:

Parent project

Rank:

Rank in list (starts over for each project)

Nested index class: ProjectMemberCollection.IdxProjectIdRank

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxProjectIdRank

ForceEntityUpdate()

Force Updated and UpdatedAssociate to be updated with current time and Currently logged in associate. This will again be overridden in the Database update operation by a query processor.

Declaration
protected override void ForceEntityUpdate()
Overrides
EntityBase.ForceEntityUpdate()
Remarks

Entity objects can be created in several ways.

  • Use the static CreateNew() method to create a new, empty object. After populating it with values, you call the SuperOffice.CRM.Data.ProjectMember.Save method and corresponding row(s) in the database are created, and the objects' primary key field updated. This is the preferred way to insert new entities into the database.
  • You can create a (nested) ProjectMember ProjectMember.CustomSearch object to obtain a query pre-populated with the correct tableinfo and return fields. This query can be modified with restrictions, etc. Then, use the static GetFromCustomSearch method to apply the query to the database and obtain the result as an Entity object. This is how you select existing entities from the database when you have a query that does not correspond to any of the existing database indexes.
  • For each unique index defined for the table, there is a corresponding GetFromIdx method to make retrieving data via the indexes easy. Note that if you try to fetch a row that does not exist (for instance, by using the primary key index and specifying a primary key that does not exist in the database), you will get a Row object with the SuperOffice.CRM.Data.ProjectMember.IsNew and SuperOffice.CRM.Data.ProjectMember.IsDirty properties set to true. Such an Entity object is called a 'ghost' and cannot be updated, saved or deleted. You can also get a ghost if the row does exist in the database, but the Sentry system denies Select rights to the row.
Non-unique indexes are handled through the ProjectMemberCollection collection, which has nested classes and GetFromIdx methods for each non-unique index. There are no 'GetFromReader' methods, since that would be rather complex (multiple TableInfo objects required).

Unique indexes on ProjectMember are:
Index fieldsNested index class name
ProjectmemberIdProjectmemberId:

Primary key

Nested index class: ProjectMember.IdxProjectmemberId

Static Get method: SuperOffice.CRM.Entities.ProjectMember.GetFromIdxProjectmemberId
Non-unique indexes on table ProjectMember are:
Index fieldsNested index class name
PersonIdPersonId:

person_id

Nested index class: ProjectMemberCollection.IdxPersonId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxPersonId
ContactIdContactId:

contact_id of person (denormalisation!)

Nested index class: ProjectMemberCollection.IdxContactId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxContactId
ProjectId, RankProjectId:

Parent project

Rank:

Rank in list (starts over for each project)

Nested index class: ProjectMemberCollection.IdxProjectIdRank

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxProjectIdRank

FromProjectMemberRow(ProjectMemberRow)

Operator asigning a ProjectMember from a ProjectMemberRow.

Declaration
public static ProjectMember FromProjectMemberRow(ProjectMemberRow row)
Parameters
Type Name Description
ProjectMemberRow row

ProjectMemberRow object

Returns
Type Description
ProjectMember

ProjectMember Entity

Remarks

Entity objects can be created in several ways.

  • Use the static CreateNew() method to create a new, empty object. After populating it with values, you call the SuperOffice.CRM.Data.ProjectMember.Save method and corresponding row(s) in the database are created, and the objects' primary key field updated. This is the preferred way to insert new entities into the database.
  • You can create a (nested) ProjectMember ProjectMember.CustomSearch object to obtain a query pre-populated with the correct tableinfo and return fields. This query can be modified with restrictions, etc. Then, use the static GetFromCustomSearch method to apply the query to the database and obtain the result as an Entity object. This is how you select existing entities from the database when you have a query that does not correspond to any of the existing database indexes.
  • For each unique index defined for the table, there is a corresponding GetFromIdx method to make retrieving data via the indexes easy. Note that if you try to fetch a row that does not exist (for instance, by using the primary key index and specifying a primary key that does not exist in the database), you will get a Row object with the SuperOffice.CRM.Data.ProjectMember.IsNew and SuperOffice.CRM.Data.ProjectMember.IsDirty properties set to true. Such an Entity object is called a 'ghost' and cannot be updated, saved or deleted. You can also get a ghost if the row does exist in the database, but the Sentry system denies Select rights to the row.
Non-unique indexes are handled through the ProjectMemberCollection collection, which has nested classes and GetFromIdx methods for each non-unique index. There are no 'GetFromReader' methods, since that would be rather complex (multiple TableInfo objects required).

Unique indexes on ProjectMember are:
Index fieldsNested index class name
ProjectmemberIdProjectmemberId:

Primary key

Nested index class: ProjectMember.IdxProjectmemberId

Static Get method: SuperOffice.CRM.Entities.ProjectMember.GetFromIdxProjectmemberId
Non-unique indexes on table ProjectMember are:
Index fieldsNested index class name
PersonIdPersonId:

person_id

Nested index class: ProjectMemberCollection.IdxPersonId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxPersonId
ContactIdContactId:

contact_id of person (denormalisation!)

Nested index class: ProjectMemberCollection.IdxContactId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxContactId
ProjectId, RankProjectId:

Parent project

Rank:

Rank in list (starts over for each project)

Nested index class: ProjectMemberCollection.IdxProjectIdRank

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxProjectIdRank

FromProjectMemberRow(ProjectMemberRow, ProjectMemberIdxBase)

Link-table between person and project

Entity Object for table 'projectmember'. Entity objects represent full entities with both the base table object and all related objects, such as and things like owner associate and whatever else is logically related to the base object.
Declaration
public static ProjectMember FromProjectMemberRow(ProjectMemberRow row, ProjectMember.ProjectMemberIdxBase idx)
Parameters
Type Name Description
ProjectMemberRow row
ProjectMember.ProjectMemberIdxBase idx
Returns
Type Description
ProjectMember
Remarks

Entity objects can be created in several ways.

  • Use the static CreateNew() method to create a new, empty object. After populating it with values, you call the SuperOffice.CRM.Data.ProjectMember.Save method and corresponding row(s) in the database are created, and the objects' primary key field updated. This is the preferred way to insert new entities into the database.
  • You can create a (nested) ProjectMember ProjectMember.CustomSearch object to obtain a query pre-populated with the correct tableinfo and return fields. This query can be modified with restrictions, etc. Then, use the static GetFromCustomSearch method to apply the query to the database and obtain the result as an Entity object. This is how you select existing entities from the database when you have a query that does not correspond to any of the existing database indexes.
  • For each unique index defined for the table, there is a corresponding GetFromIdx method to make retrieving data via the indexes easy. Note that if you try to fetch a row that does not exist (for instance, by using the primary key index and specifying a primary key that does not exist in the database), you will get a Row object with the SuperOffice.CRM.Data.ProjectMember.IsNew and SuperOffice.CRM.Data.ProjectMember.IsDirty properties set to true. Such an Entity object is called a 'ghost' and cannot be updated, saved or deleted. You can also get a ghost if the row does exist in the database, but the Sentry system denies Select rights to the row.
Non-unique indexes are handled through the ProjectMemberCollection collection, which has nested classes and GetFromIdx methods for each non-unique index. There are no 'GetFromReader' methods, since that would be rather complex (multiple TableInfo objects required).

Unique indexes on ProjectMember are:
Index fieldsNested index class name
ProjectmemberIdProjectmemberId:

Primary key

Nested index class: ProjectMember.IdxProjectmemberId

Static Get method: SuperOffice.CRM.Entities.ProjectMember.GetFromIdxProjectmemberId
Non-unique indexes on table ProjectMember are:
Index fieldsNested index class name
PersonIdPersonId:

person_id

Nested index class: ProjectMemberCollection.IdxPersonId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxPersonId
ContactIdContactId:

contact_id of person (denormalisation!)

Nested index class: ProjectMemberCollection.IdxContactId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxContactId
ProjectId, RankProjectId:

Parent project

Rank:

Rank in list (starts over for each project)

Nested index class: ProjectMemberCollection.IdxProjectIdRank

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxProjectIdRank

GetFromCustomSearchAsync(CustomSearch, CancellationToken)

Create a new instance of the ProjectMember object, and populate it with data from a custom search. If the search returns no results, an empty entity will be returned; if the result contains rows, one ProjectMember object representing the first row will be returned. Any further rows in the result will be ignored.

Declaration
public static Task<ProjectMember> GetFromCustomSearchAsync(ProjectMember.CustomSearch query, CancellationToken cancellationToken = default)
Parameters
Type Name Description
ProjectMember.CustomSearch query

The custom search to execute against the database

CancellationToken cancellationToken
Returns
Type Description
Task<ProjectMember>

A new instance of the ProjectMember object, reflecting the result of the query.

Remarks

Entity objects can be created in several ways.

  • Use the static CreateNew() method to create a new, empty object. After populating it with values, you call the SuperOffice.CRM.Data.ProjectMember.Save method and corresponding row(s) in the database are created, and the objects' primary key field updated. This is the preferred way to insert new entities into the database.
  • You can create a (nested) ProjectMember ProjectMember.CustomSearch object to obtain a query pre-populated with the correct tableinfo and return fields. This query can be modified with restrictions, etc. Then, use the static GetFromCustomSearch method to apply the query to the database and obtain the result as an Entity object. This is how you select existing entities from the database when you have a query that does not correspond to any of the existing database indexes.
  • For each unique index defined for the table, there is a corresponding GetFromIdx method to make retrieving data via the indexes easy. Note that if you try to fetch a row that does not exist (for instance, by using the primary key index and specifying a primary key that does not exist in the database), you will get a Row object with the SuperOffice.CRM.Data.ProjectMember.IsNew and SuperOffice.CRM.Data.ProjectMember.IsDirty properties set to true. Such an Entity object is called a 'ghost' and cannot be updated, saved or deleted. You can also get a ghost if the row does exist in the database, but the Sentry system denies Select rights to the row.
Non-unique indexes are handled through the ProjectMemberCollection collection, which has nested classes and GetFromIdx methods for each non-unique index. There are no 'GetFromReader' methods, since that would be rather complex (multiple TableInfo objects required).

Unique indexes on ProjectMember are:
Index fieldsNested index class name
ProjectmemberIdProjectmemberId:

Primary key

Nested index class: ProjectMember.IdxProjectmemberId

Static Get method: SuperOffice.CRM.Entities.ProjectMember.GetFromIdxProjectmemberId
Non-unique indexes on table ProjectMember are:
Index fieldsNested index class name
PersonIdPersonId:

person_id

Nested index class: ProjectMemberCollection.IdxPersonId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxPersonId
ContactIdContactId:

contact_id of person (denormalisation!)

Nested index class: ProjectMemberCollection.IdxContactId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxContactId
ProjectId, RankProjectId:

Parent project

Rank:

Rank in list (starts over for each project)

Nested index class: ProjectMemberCollection.IdxProjectIdRank

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxProjectIdRank

GetFromIdxProjectmemberIdAsync(int, CancellationToken)

Create a new instance of the ProjectMember object, by querying the database table via the index 'IDXPmembId'. This method is intended to make it easy to use efficient queries that match a database index.

Declaration
public static Task<ProjectMember> GetFromIdxProjectmemberIdAsync(int projectmemberId, CancellationToken cancellationToken = default)
Parameters
Type Name Description
int projectmemberId

Primary key

CancellationToken cancellationToken
Returns
Type Description
Task<ProjectMember>

Row object that represents the result of the search. IsNew will be true if the query did not match any row in the table

Remarks

This method represents one of the unique indexes on the ProjectMember table. Non-unique indexes have corresponding inner classes and methods in the ProjectMemberCollection collection, since they may return more than one row.

GetRelatedNestedPersistAsync(List<INestedPersist>, bool, CancellationToken)

Append all the related objects to a list of INestedPersist.

Declaration
protected override Task GetRelatedNestedPersistAsync(List<INestedPersist> relatedObjects, bool lacyFetchIfNeeded, CancellationToken cancellationToken = default)
Parameters
Type Name Description
List<INestedPersist> relatedObjects

List to append related objects to.

bool lacyFetchIfNeeded
CancellationToken cancellationToken
Returns
Type Description
Task
Overrides
EntityBase.GetRelatedNestedPersistAsync(List<INestedPersist>, bool, CancellationToken)
Remarks

Entity objects can be created in several ways.

  • Use the static CreateNew() method to create a new, empty object. After populating it with values, you call the SuperOffice.CRM.Data.ProjectMember.Save method and corresponding row(s) in the database are created, and the objects' primary key field updated. This is the preferred way to insert new entities into the database.
  • You can create a (nested) ProjectMember ProjectMember.CustomSearch object to obtain a query pre-populated with the correct tableinfo and return fields. This query can be modified with restrictions, etc. Then, use the static GetFromCustomSearch method to apply the query to the database and obtain the result as an Entity object. This is how you select existing entities from the database when you have a query that does not correspond to any of the existing database indexes.
  • For each unique index defined for the table, there is a corresponding GetFromIdx method to make retrieving data via the indexes easy. Note that if you try to fetch a row that does not exist (for instance, by using the primary key index and specifying a primary key that does not exist in the database), you will get a Row object with the SuperOffice.CRM.Data.ProjectMember.IsNew and SuperOffice.CRM.Data.ProjectMember.IsDirty properties set to true. Such an Entity object is called a 'ghost' and cannot be updated, saved or deleted. You can also get a ghost if the row does exist in the database, but the Sentry system denies Select rights to the row.
Non-unique indexes are handled through the ProjectMemberCollection collection, which has nested classes and GetFromIdx methods for each non-unique index. There are no 'GetFromReader' methods, since that would be rather complex (multiple TableInfo objects required).

Unique indexes on ProjectMember are:
Index fieldsNested index class name
ProjectmemberIdProjectmemberId:

Primary key

Nested index class: ProjectMember.IdxProjectmemberId

Static Get method: SuperOffice.CRM.Entities.ProjectMember.GetFromIdxProjectmemberId
Non-unique indexes on table ProjectMember are:
Index fieldsNested index class name
PersonIdPersonId:

person_id

Nested index class: ProjectMemberCollection.IdxPersonId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxPersonId
ContactIdContactId:

contact_id of person (denormalisation!)

Nested index class: ProjectMemberCollection.IdxContactId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxContactId
ProjectId, RankProjectId:

Parent project

Rank:

Rank in list (starts over for each project)

Nested index class: ProjectMemberCollection.IdxProjectIdRank

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxProjectIdRank

OnIdUpdateAsync()

Update related objects with correct id's to make sure that relations are consistent before saving to the database.

Declaration
protected override Task OnIdUpdateAsync()
Returns
Type Description
Task
Overrides
EntityBase.OnIdUpdateAsync()
Remarks

Entity objects can be created in several ways.

  • Use the static CreateNew() method to create a new, empty object. After populating it with values, you call the SuperOffice.CRM.Data.ProjectMember.Save method and corresponding row(s) in the database are created, and the objects' primary key field updated. This is the preferred way to insert new entities into the database.
  • You can create a (nested) ProjectMember ProjectMember.CustomSearch object to obtain a query pre-populated with the correct tableinfo and return fields. This query can be modified with restrictions, etc. Then, use the static GetFromCustomSearch method to apply the query to the database and obtain the result as an Entity object. This is how you select existing entities from the database when you have a query that does not correspond to any of the existing database indexes.
  • For each unique index defined for the table, there is a corresponding GetFromIdx method to make retrieving data via the indexes easy. Note that if you try to fetch a row that does not exist (for instance, by using the primary key index and specifying a primary key that does not exist in the database), you will get a Row object with the SuperOffice.CRM.Data.ProjectMember.IsNew and SuperOffice.CRM.Data.ProjectMember.IsDirty properties set to true. Such an Entity object is called a 'ghost' and cannot be updated, saved or deleted. You can also get a ghost if the row does exist in the database, but the Sentry system denies Select rights to the row.
Non-unique indexes are handled through the ProjectMemberCollection collection, which has nested classes and GetFromIdx methods for each non-unique index. There are no 'GetFromReader' methods, since that would be rather complex (multiple TableInfo objects required).

Unique indexes on ProjectMember are:
Index fieldsNested index class name
ProjectmemberIdProjectmemberId:

Primary key

Nested index class: ProjectMember.IdxProjectmemberId

Static Get method: SuperOffice.CRM.Entities.ProjectMember.GetFromIdxProjectmemberId
Non-unique indexes on table ProjectMember are:
Index fieldsNested index class name
PersonIdPersonId:

person_id

Nested index class: ProjectMemberCollection.IdxPersonId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxPersonId
ContactIdContactId:

contact_id of person (denormalisation!)

Nested index class: ProjectMemberCollection.IdxContactId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxContactId
ProjectId, RankProjectId:

Parent project

Rank:

Rank in list (starts over for each project)

Nested index class: ProjectMemberCollection.IdxProjectIdRank

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxProjectIdRank

OnPostSaveMe()

Handle actions needed to be taken after this object has been saved, but before saving objects depending upon this one.

Declaration
protected virtual void OnPostSaveMe()
Remarks

Entity objects can be created in several ways.

  • Use the static CreateNew() method to create a new, empty object. After populating it with values, you call the SuperOffice.CRM.Data.ProjectMember.Save method and corresponding row(s) in the database are created, and the objects' primary key field updated. This is the preferred way to insert new entities into the database.
  • You can create a (nested) ProjectMember ProjectMember.CustomSearch object to obtain a query pre-populated with the correct tableinfo and return fields. This query can be modified with restrictions, etc. Then, use the static GetFromCustomSearch method to apply the query to the database and obtain the result as an Entity object. This is how you select existing entities from the database when you have a query that does not correspond to any of the existing database indexes.
  • For each unique index defined for the table, there is a corresponding GetFromIdx method to make retrieving data via the indexes easy. Note that if you try to fetch a row that does not exist (for instance, by using the primary key index and specifying a primary key that does not exist in the database), you will get a Row object with the SuperOffice.CRM.Data.ProjectMember.IsNew and SuperOffice.CRM.Data.ProjectMember.IsDirty properties set to true. Such an Entity object is called a 'ghost' and cannot be updated, saved or deleted. You can also get a ghost if the row does exist in the database, but the Sentry system denies Select rights to the row.
Non-unique indexes are handled through the ProjectMemberCollection collection, which has nested classes and GetFromIdx methods for each non-unique index. There are no 'GetFromReader' methods, since that would be rather complex (multiple TableInfo objects required).

Unique indexes on ProjectMember are:
Index fieldsNested index class name
ProjectmemberIdProjectmemberId:

Primary key

Nested index class: ProjectMember.IdxProjectmemberId

Static Get method: SuperOffice.CRM.Entities.ProjectMember.GetFromIdxProjectmemberId
Non-unique indexes on table ProjectMember are:
Index fieldsNested index class name
PersonIdPersonId:

person_id

Nested index class: ProjectMemberCollection.IdxPersonId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxPersonId
ContactIdContactId:

contact_id of person (denormalisation!)

Nested index class: ProjectMemberCollection.IdxContactId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxContactId
ProjectId, RankProjectId:

Parent project

Rank:

Rank in list (starts over for each project)

Nested index class: ProjectMemberCollection.IdxProjectIdRank

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxProjectIdRank

OnPreIdUpdateAsync()

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

Declaration
protected override Task OnPreIdUpdateAsync()
Returns
Type Description
Task
Overrides
EntityBase.OnPreIdUpdateAsync()
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 needs 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.

OnPreSaveMe()

Handle actions needed to be taken after objects this object depends on have been saved, but before this object is saved.

Declaration
protected virtual void OnPreSaveMe()
Remarks

Entity objects can be created in several ways.

  • Use the static CreateNew() method to create a new, empty object. After populating it with values, you call the SuperOffice.CRM.Data.ProjectMember.Save method and corresponding row(s) in the database are created, and the objects' primary key field updated. This is the preferred way to insert new entities into the database.
  • You can create a (nested) ProjectMember ProjectMember.CustomSearch object to obtain a query pre-populated with the correct tableinfo and return fields. This query can be modified with restrictions, etc. Then, use the static GetFromCustomSearch method to apply the query to the database and obtain the result as an Entity object. This is how you select existing entities from the database when you have a query that does not correspond to any of the existing database indexes.
  • For each unique index defined for the table, there is a corresponding GetFromIdx method to make retrieving data via the indexes easy. Note that if you try to fetch a row that does not exist (for instance, by using the primary key index and specifying a primary key that does not exist in the database), you will get a Row object with the SuperOffice.CRM.Data.ProjectMember.IsNew and SuperOffice.CRM.Data.ProjectMember.IsDirty properties set to true. Such an Entity object is called a 'ghost' and cannot be updated, saved or deleted. You can also get a ghost if the row does exist in the database, but the Sentry system denies Select rights to the row.
Non-unique indexes are handled through the ProjectMemberCollection collection, which has nested classes and GetFromIdx methods for each non-unique index. There are no 'GetFromReader' methods, since that would be rather complex (multiple TableInfo objects required).

Unique indexes on ProjectMember are:
Index fieldsNested index class name
ProjectmemberIdProjectmemberId:

Primary key

Nested index class: ProjectMember.IdxProjectmemberId

Static Get method: SuperOffice.CRM.Entities.ProjectMember.GetFromIdxProjectmemberId
Non-unique indexes on table ProjectMember are:
Index fieldsNested index class name
PersonIdPersonId:

person_id

Nested index class: ProjectMemberCollection.IdxPersonId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxPersonId
ContactIdContactId:

contact_id of person (denormalisation!)

Nested index class: ProjectMemberCollection.IdxContactId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxContactId
ProjectId, RankProjectId:

Parent project

Rank:

Rank in list (starts over for each project)

Nested index class: ProjectMemberCollection.IdxProjectIdRank

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxProjectIdRank

OnRowLoad(SoDataReader, TableRowBase)

Event raised when the row is loaded from the database

Declaration
protected override void OnRowLoad(SoDataReader reader, TableRowBase row)
Parameters
Type Name Description
SoDataReader reader
TableRowBase row
Overrides
EntityBase.OnRowLoad(SoDataReader, TableRowBase)
Remarks

Entity objects can be created in several ways.

  • Use the static CreateNew() method to create a new, empty object. After populating it with values, you call the SuperOffice.CRM.Data.ProjectMember.Save method and corresponding row(s) in the database are created, and the objects' primary key field updated. This is the preferred way to insert new entities into the database.
  • You can create a (nested) ProjectMember ProjectMember.CustomSearch object to obtain a query pre-populated with the correct tableinfo and return fields. This query can be modified with restrictions, etc. Then, use the static GetFromCustomSearch method to apply the query to the database and obtain the result as an Entity object. This is how you select existing entities from the database when you have a query that does not correspond to any of the existing database indexes.
  • For each unique index defined for the table, there is a corresponding GetFromIdx method to make retrieving data via the indexes easy. Note that if you try to fetch a row that does not exist (for instance, by using the primary key index and specifying a primary key that does not exist in the database), you will get a Row object with the SuperOffice.CRM.Data.ProjectMember.IsNew and SuperOffice.CRM.Data.ProjectMember.IsDirty properties set to true. Such an Entity object is called a 'ghost' and cannot be updated, saved or deleted. You can also get a ghost if the row does exist in the database, but the Sentry system denies Select rights to the row.
Non-unique indexes are handled through the ProjectMemberCollection collection, which has nested classes and GetFromIdx methods for each non-unique index. There are no 'GetFromReader' methods, since that would be rather complex (multiple TableInfo objects required).

Unique indexes on ProjectMember are:
Index fieldsNested index class name
ProjectmemberIdProjectmemberId:

Primary key

Nested index class: ProjectMember.IdxProjectmemberId

Static Get method: SuperOffice.CRM.Entities.ProjectMember.GetFromIdxProjectmemberId
Non-unique indexes on table ProjectMember are:
Index fieldsNested index class name
PersonIdPersonId:

person_id

Nested index class: ProjectMemberCollection.IdxPersonId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxPersonId
ContactIdContactId:

contact_id of person (denormalisation!)

Nested index class: ProjectMemberCollection.IdxContactId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxContactId
ProjectId, RankProjectId:

Parent project

Rank:

Rank in list (starts over for each project)

Nested index class: ProjectMemberCollection.IdxProjectIdRank

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxProjectIdRank

OnRowLoaded()

Link-table between person and project

Entity Object for table 'projectmember'. Entity objects represent full entities with both the base table object and all related objects, such as and things like owner associate and whatever else is logically related to the base object.
Declaration
protected override void OnRowLoaded()
Overrides
EntityBase.OnRowLoaded()
Remarks

Entity objects can be created in several ways.

  • Use the static CreateNew() method to create a new, empty object. After populating it with values, you call the SuperOffice.CRM.Data.ProjectMember.Save method and corresponding row(s) in the database are created, and the objects' primary key field updated. This is the preferred way to insert new entities into the database.
  • You can create a (nested) ProjectMember ProjectMember.CustomSearch object to obtain a query pre-populated with the correct tableinfo and return fields. This query can be modified with restrictions, etc. Then, use the static GetFromCustomSearch method to apply the query to the database and obtain the result as an Entity object. This is how you select existing entities from the database when you have a query that does not correspond to any of the existing database indexes.
  • For each unique index defined for the table, there is a corresponding GetFromIdx method to make retrieving data via the indexes easy. Note that if you try to fetch a row that does not exist (for instance, by using the primary key index and specifying a primary key that does not exist in the database), you will get a Row object with the SuperOffice.CRM.Data.ProjectMember.IsNew and SuperOffice.CRM.Data.ProjectMember.IsDirty properties set to true. Such an Entity object is called a 'ghost' and cannot be updated, saved or deleted. You can also get a ghost if the row does exist in the database, but the Sentry system denies Select rights to the row.
Non-unique indexes are handled through the ProjectMemberCollection collection, which has nested classes and GetFromIdx methods for each non-unique index. There are no 'GetFromReader' methods, since that would be rather complex (multiple TableInfo objects required).

Unique indexes on ProjectMember are:
Index fieldsNested index class name
ProjectmemberIdProjectmemberId:

Primary key

Nested index class: ProjectMember.IdxProjectmemberId

Static Get method: SuperOffice.CRM.Entities.ProjectMember.GetFromIdxProjectmemberId
Non-unique indexes on table ProjectMember are:
Index fieldsNested index class name
PersonIdPersonId:

person_id

Nested index class: ProjectMemberCollection.IdxPersonId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxPersonId
ContactIdContactId:

contact_id of person (denormalisation!)

Nested index class: ProjectMemberCollection.IdxContactId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxContactId
ProjectId, RankProjectId:

Parent project

Rank:

Rank in list (starts over for each project)

Nested index class: ProjectMemberCollection.IdxProjectIdRank

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxProjectIdRank

SetDefaultsAsync(DefaulterStrategy, CancellationToken)

Set default values for the entity.

Declaration
public Task SetDefaultsAsync(DefaulterStrategy strategy, CancellationToken cancellationToken = default)
Parameters
Type Name Description
DefaulterStrategy strategy

Strategy used when appliying default values.

CancellationToken cancellationToken
Returns
Type Description
Task
Remarks

Entity objects can be created in several ways.

  • Use the static CreateNew() method to create a new, empty object. After populating it with values, you call the SuperOffice.CRM.Data.ProjectMember.Save method and corresponding row(s) in the database are created, and the objects' primary key field updated. This is the preferred way to insert new entities into the database.
  • You can create a (nested) ProjectMember ProjectMember.CustomSearch object to obtain a query pre-populated with the correct tableinfo and return fields. This query can be modified with restrictions, etc. Then, use the static GetFromCustomSearch method to apply the query to the database and obtain the result as an Entity object. This is how you select existing entities from the database when you have a query that does not correspond to any of the existing database indexes.
  • For each unique index defined for the table, there is a corresponding GetFromIdx method to make retrieving data via the indexes easy. Note that if you try to fetch a row that does not exist (for instance, by using the primary key index and specifying a primary key that does not exist in the database), you will get a Row object with the SuperOffice.CRM.Data.ProjectMember.IsNew and SuperOffice.CRM.Data.ProjectMember.IsDirty properties set to true. Such an Entity object is called a 'ghost' and cannot be updated, saved or deleted. You can also get a ghost if the row does exist in the database, but the Sentry system denies Select rights to the row.
Non-unique indexes are handled through the ProjectMemberCollection collection, which has nested classes and GetFromIdx methods for each non-unique index. There are no 'GetFromReader' methods, since that would be rather complex (multiple TableInfo objects required).

Unique indexes on ProjectMember are:
Index fieldsNested index class name
ProjectmemberIdProjectmemberId:

Primary key

Nested index class: ProjectMember.IdxProjectmemberId

Static Get method: SuperOffice.CRM.Entities.ProjectMember.GetFromIdxProjectmemberId
Non-unique indexes on table ProjectMember are:
Index fieldsNested index class name
PersonIdPersonId:

person_id

Nested index class: ProjectMemberCollection.IdxPersonId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxPersonId
ContactIdContactId:

contact_id of person (denormalisation!)

Nested index class: ProjectMemberCollection.IdxContactId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxContactId
ProjectId, RankProjectId:

Parent project

Rank:

Rank in list (starts over for each project)

Nested index class: ProjectMemberCollection.IdxProjectIdRank

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxProjectIdRank

SetDefaultsAsync(CancellationToken)

Set default values for the entity.

Declaration
public Task SetDefaultsAsync(CancellationToken cancellationToken = default)
Parameters
Type Name Description
CancellationToken cancellationToken
Returns
Type Description
Task
Remarks

Entity objects can be created in several ways.

  • Use the static CreateNew() method to create a new, empty object. After populating it with values, you call the SuperOffice.CRM.Data.ProjectMember.Save method and corresponding row(s) in the database are created, and the objects' primary key field updated. This is the preferred way to insert new entities into the database.
  • You can create a (nested) ProjectMember ProjectMember.CustomSearch object to obtain a query pre-populated with the correct tableinfo and return fields. This query can be modified with restrictions, etc. Then, use the static GetFromCustomSearch method to apply the query to the database and obtain the result as an Entity object. This is how you select existing entities from the database when you have a query that does not correspond to any of the existing database indexes.
  • For each unique index defined for the table, there is a corresponding GetFromIdx method to make retrieving data via the indexes easy. Note that if you try to fetch a row that does not exist (for instance, by using the primary key index and specifying a primary key that does not exist in the database), you will get a Row object with the SuperOffice.CRM.Data.ProjectMember.IsNew and SuperOffice.CRM.Data.ProjectMember.IsDirty properties set to true. Such an Entity object is called a 'ghost' and cannot be updated, saved or deleted. You can also get a ghost if the row does exist in the database, but the Sentry system denies Select rights to the row.
Non-unique indexes are handled through the ProjectMemberCollection collection, which has nested classes and GetFromIdx methods for each non-unique index. There are no 'GetFromReader' methods, since that would be rather complex (multiple TableInfo objects required).

Unique indexes on ProjectMember are:
Index fieldsNested index class name
ProjectmemberIdProjectmemberId:

Primary key

Nested index class: ProjectMember.IdxProjectmemberId

Static Get method: SuperOffice.CRM.Entities.ProjectMember.GetFromIdxProjectmemberId
Non-unique indexes on table ProjectMember are:
Index fieldsNested index class name
PersonIdPersonId:

person_id

Nested index class: ProjectMemberCollection.IdxPersonId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxPersonId
ContactIdContactId:

contact_id of person (denormalisation!)

Nested index class: ProjectMemberCollection.IdxContactId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxContactId
ProjectId, RankProjectId:

Parent project

Rank:

Rank in list (starts over for each project)

Nested index class: ProjectMemberCollection.IdxProjectIdRank

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxProjectIdRank

ValidateAsync(CancellationToken)

Check the entity and related objects for consistency and required fields, and return fields and error messages.

Declaration
public override Task<Dictionary<string, string>> ValidateAsync(CancellationToken cancellationToken = default)
Parameters
Type Name Description
CancellationToken cancellationToken
Returns
Type Description
Task<Dictionary<string, string>>

Field names and error messages

Overrides
EntityBase.ValidateAsync(CancellationToken)
Remarks

Entity objects can be created in several ways.

  • Use the static CreateNew() method to create a new, empty object. After populating it with values, you call the SuperOffice.CRM.Data.ProjectMember.Save method and corresponding row(s) in the database are created, and the objects' primary key field updated. This is the preferred way to insert new entities into the database.
  • You can create a (nested) ProjectMember ProjectMember.CustomSearch object to obtain a query pre-populated with the correct tableinfo and return fields. This query can be modified with restrictions, etc. Then, use the static GetFromCustomSearch method to apply the query to the database and obtain the result as an Entity object. This is how you select existing entities from the database when you have a query that does not correspond to any of the existing database indexes.
  • For each unique index defined for the table, there is a corresponding GetFromIdx method to make retrieving data via the indexes easy. Note that if you try to fetch a row that does not exist (for instance, by using the primary key index and specifying a primary key that does not exist in the database), you will get a Row object with the SuperOffice.CRM.Data.ProjectMember.IsNew and SuperOffice.CRM.Data.ProjectMember.IsDirty properties set to true. Such an Entity object is called a 'ghost' and cannot be updated, saved or deleted. You can also get a ghost if the row does exist in the database, but the Sentry system denies Select rights to the row.
Non-unique indexes are handled through the ProjectMemberCollection collection, which has nested classes and GetFromIdx methods for each non-unique index. There are no 'GetFromReader' methods, since that would be rather complex (multiple TableInfo objects required).

Unique indexes on ProjectMember are:
Index fieldsNested index class name
ProjectmemberIdProjectmemberId:

Primary key

Nested index class: ProjectMember.IdxProjectmemberId

Static Get method: SuperOffice.CRM.Entities.ProjectMember.GetFromIdxProjectmemberId
Non-unique indexes on table ProjectMember are:
Index fieldsNested index class name
PersonIdPersonId:

person_id

Nested index class: ProjectMemberCollection.IdxPersonId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxPersonId
ContactIdContactId:

contact_id of person (denormalisation!)

Nested index class: ProjectMemberCollection.IdxContactId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxContactId
ProjectId, RankProjectId:

Parent project

Rank:

Rank in list (starts over for each project)

Nested index class: ProjectMemberCollection.IdxProjectIdRank

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxProjectIdRank

Operators

explicit operator ProjectMember(ProjectMemberRow)

Operator assigning a ProjectMember from a ProjectMemberRow.

Declaration
public static explicit operator ProjectMember(ProjectMemberRow row)
Parameters
Type Name Description
ProjectMemberRow row

ProjectMemberRow object

Returns
Type Description
ProjectMember

ProjectMember Entity

Remarks

Entity objects can be created in several ways.

  • Use the static CreateNew() method to create a new, empty object. After populating it with values, you call the SuperOffice.CRM.Data.ProjectMember.Save method and corresponding row(s) in the database are created, and the objects' primary key field updated. This is the preferred way to insert new entities into the database.
  • You can create a (nested) ProjectMember ProjectMember.CustomSearch object to obtain a query pre-populated with the correct tableinfo and return fields. This query can be modified with restrictions, etc. Then, use the static GetFromCustomSearch method to apply the query to the database and obtain the result as an Entity object. This is how you select existing entities from the database when you have a query that does not correspond to any of the existing database indexes.
  • For each unique index defined for the table, there is a corresponding GetFromIdx method to make retrieving data via the indexes easy. Note that if you try to fetch a row that does not exist (for instance, by using the primary key index and specifying a primary key that does not exist in the database), you will get a Row object with the SuperOffice.CRM.Data.ProjectMember.IsNew and SuperOffice.CRM.Data.ProjectMember.IsDirty properties set to true. Such an Entity object is called a 'ghost' and cannot be updated, saved or deleted. You can also get a ghost if the row does exist in the database, but the Sentry system denies Select rights to the row.
Non-unique indexes are handled through the ProjectMemberCollection collection, which has nested classes and GetFromIdx methods for each non-unique index. There are no 'GetFromReader' methods, since that would be rather complex (multiple TableInfo objects required).

Unique indexes on ProjectMember are:
Index fieldsNested index class name
ProjectmemberIdProjectmemberId:

Primary key

Nested index class: ProjectMember.IdxProjectmemberId

Static Get method: SuperOffice.CRM.Entities.ProjectMember.GetFromIdxProjectmemberId
Non-unique indexes on table ProjectMember are:
Index fieldsNested index class name
PersonIdPersonId:

person_id

Nested index class: ProjectMemberCollection.IdxPersonId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxPersonId
ContactIdContactId:

contact_id of person (denormalisation!)

Nested index class: ProjectMemberCollection.IdxContactId

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxContactId
ProjectId, RankProjectId:

Parent project

Rank:

Rank in list (starts over for each project)

Nested index class: ProjectMemberCollection.IdxProjectIdRank

Static Get method: SuperOffice.CRM.Entities.ProjectMemberCollection.GetFromIdxProjectIdRank

Implements

INestedPersist
ITableRowLoadHandler

Extension Methods

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