/// This method discovers the MetaType for the given Type.
/// </summary>
publicabstractMetaTypeGetMetaType(Typetype);
/// <summary>
/// Internal value used to determine a reference identity for comparing meta models
/// without needing to keep track of the actual meta model reference.
/// </summary>
privateobjectidentity=newobject();
internalobjectIdentity{
get{returnthis.identity;}
}
}
/// <summary>
/// A MetaTable represents an abstraction of a database table (or view)
/// </summary>
publicabstractclassMetaTable{
/// <summary>
/// The MetaModel containing this MetaTable.
/// </summary>
publicabstractMetaModelModel{get;}
/// <summary>
/// The name of the table as defined by the database.
/// </summary>
publicabstractstringTableName{get;}
/// <summary>
/// The MetaType describing the type of the rows of the table.
/// </summary>
publicabstractMetaTypeRowType{get;}
/// <summary>
/// The DataContext method used to perform insert operations
/// </summary>
publicabstractMethodInfoInsertMethod{get;}
/// <summary>
/// The DataContext method used to perform update operations
/// </summary>
publicabstractMethodInfoUpdateMethod{get;}
/// <summary>
/// The DataContext method used to perform delete operations
/// </summary>
publicabstractMethodInfoDeleteMethod{get;}
}
/// <summary>
/// A MetaType represents the mapping of a domain object type onto a database table's columns.
/// </summary>
publicabstractclassMetaType{
/// <summary>
/// The MetaModel containing this MetaType.
/// </summary>
publicabstractMetaModelModel{get;}
/// <summary>
/// The MetaTable using this MetaType for row definition.
/// </summary>
publicabstractMetaTableTable{get;}
/// <summary>
/// The underlying CLR type.
/// </summary>
[SuppressMessage("Microsoft.Naming", "CA1721:PropertyNamesShouldNotMatchGetMethods", Justification = "The contexts in which this is available are fairly specific.")]
publicabstractTypeType{get;}
/// <summary>
/// The name of the MetaType (same as the CLR type's name).
/// </summary>
publicabstractstringName{get;}
/// <summary>
/// True if the MetaType is an entity type.
/// </summary>
publicabstractboolIsEntity{get;}
/// <summary>
/// True if the underlying type can be instantiated as the result of a query.
/// </summary>
publicabstractboolCanInstantiate{get;}
/// <summary>
/// The member that represents the auto-generated identity column, or null if there is none.
/// The method called when the entity is first loaded.
/// </summary>
publicabstractMethodInfoOnLoadedMethod{get;}
/// <summary>
/// The method called to ensure the entity is in a valid state.
/// </summary>
publicabstractMethodInfoOnValidateMethod{get;}
}
/// <summary>
/// A MetaDataMember represents the mapping between a domain object's field or property into a database table's column.
/// </summary>
[SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId = "MetaData", Justification = "The capitalization was deliberately chosen.")]
publicabstractclassMetaDataMember{
/// <summary>
/// The MetaType containing this data member.
/// </summary>
publicabstractMetaTypeDeclaringType{get;}
/// <summary>
/// The underlying MemberInfo.
/// </summary>
publicabstractMemberInfoMember{get;}
/// <summary>
/// The member that actually stores this member's data.
/// </summary>
publicabstractMemberInfoStorageMember{get;}
/// <summary>
/// The name of the member, same as the MemberInfo name.
/// </summary>
publicabstractstringName{get;}
/// <summary>
/// The name of the column (or constraint) in the database.
/// </summary>
publicabstractstringMappedName{get;}
/// <summary>
/// The oridinal position of this member in the default layout of query results.
/// </summary>
publicabstractintOrdinal{get;}
/// <summary>
/// The type of this member.
/// </summary>
[SuppressMessage("Microsoft.Naming", "CA1721:PropertyNamesShouldNotMatchGetMethods", Justification = "The contexts in which this is available are fairly specific.")]
publicabstractTypeType{get;}
/// <summary>
/// True if this member is declared by the specified type.
/// </summary>
/// <param name="type">Type to check.</param>
publicabstractboolIsDeclaredBy(MetaTypetype);
/// <summary>
/// The accessor used to get/set the value of this member.
/// </summary>
publicabstractMetaAccessorMemberAccessor{get;}
/// <summary>
/// The accessor used to get/set the storage value of this member.
/// </summary>
publicabstractMetaAccessorStorageAccessor{get;}
/// <summary>
/// The accessor used to get/set the deferred value of this member (without causing fetch).
/// True if the other type is the parent of this type.
/// </summary>
publicabstractboolIsForeignKey{get;}
/// <summary>
/// True if the association is unique (defines a uniqueness constraint).
/// </summary>
publicabstractboolIsUnique{get;}
/// <summary>
/// True if the association may be null (key values).
/// </summary>
publicabstractboolIsNullable{get;}
/// <summary>
/// True if the ThisKey forms the identity (primary key) of the this type.
/// </summary>
publicabstractboolThisKeyIsPrimaryKey{get;}
/// <summary>
/// True if the OtherKey forms the identity (primary key) of the other type.
/// </summary>
publicabstractboolOtherKeyIsPrimaryKey{get;}
/// <summary>
/// Specifies the behavior when the child is deleted (e.g. CASCADE, SET NULL).
/// Returns null if no action is specified on delete.
/// </summary>
publicabstractstringDeleteRule{get;}
/// <summary>
/// Specifies whether the object should be deleted when this association
/// is set to null.
/// </summary>
publicabstractboolDeleteOnNull{get;}
}
/// <summary>
/// A MetaAccessor
/// </summary>
publicabstractclassMetaAccessor{
/// <summary>
/// The type of the member accessed by this accessor.
/// </summary>
[SuppressMessage("Microsoft.Naming", "CA1721:PropertyNamesShouldNotMatchGetMethods", Justification = "The contexts in which this is available are fairly specific.")]
publicabstractTypeType{get;}
/// <summary>
/// Gets the value as an object.
/// </summary>
/// <param name="instance">The instance to get the value from.</param>