#### [DiGi\.Core\.Relation](DiGi.Core.Relation.Overview.md 'DiGi\.Core\.Relation\.Overview') ## DiGi\.Core\.Relation\.Interfaces Namespace ### Interfaces ## IBidirectionalRelation Interface Defines the contract for a bidirectional relation between unique objects\. ```csharp public interface IBidirectionalRelation : DiGi.Core.Relation.Interfaces.IRelation, DiGi.Core.Interfaces.ISerializableObject, DiGi.Core.Interfaces.ICloneableObject, DiGi.Core.Interfaces.ICloneableObject, DiGi.Core.Interfaces.IObject ``` Derived ↳ [OneToManyBidirectionalRelation<From,To>](DiGi.Core.Relation.Classes.md#DiGi.Core.Relation.Classes.OneToManyBidirectionalRelation_From,To_ 'DiGi\.Core\.Relation\.Classes\.OneToManyBidirectionalRelation\') ↳ [OneToOneBidirectionalRelation<From,To>](DiGi.Core.Relation.Classes.md#DiGi.Core.Relation.Classes.OneToOneBidirectionalRelation_From,To_ 'DiGi\.Core\.Relation\.Classes\.OneToOneBidirectionalRelation\') ↳ [IBidirectionalRelation<X,Y>](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IBidirectionalRelation_X,Y_ 'DiGi\.Core\.Relation\.Interfaces\.IBidirectionalRelation\') Implements [IRelation](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IRelation 'DiGi\.Core\.Relation\.Interfaces\.IRelation'), [DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject'), [DiGi\.Core\.Interfaces\.ICloneableObject<](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1 'DiGi\.Core\.Interfaces\.ICloneableObject\`1')[DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject')[>](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1 'DiGi\.Core\.Interfaces\.ICloneableObject\`1'), [DiGi\.Core\.Interfaces\.ICloneableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject 'DiGi\.Core\.Interfaces\.ICloneableObject'), [DiGi\.Core\.Interfaces\.IObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iobject 'DiGi\.Core\.Interfaces\.IObject') ## IBidirectionalRelation\ Interface Defines the contract for a bidirectional relation between two types of unique objects\. ```csharp public interface IBidirectionalRelation : DiGi.Core.Relation.Interfaces.IBidirectionalRelation, DiGi.Core.Relation.Interfaces.IRelation, DiGi.Core.Interfaces.ISerializableObject, DiGi.Core.Interfaces.ICloneableObject, DiGi.Core.Interfaces.ICloneableObject, DiGi.Core.Interfaces.IObject, DiGi.Core.Relation.Interfaces.IRelation where X : DiGi.Core.Interfaces.IUniqueObject where Y : DiGi.Core.Interfaces.IUniqueObject ``` #### Type parameters `X` `Y` Derived ↳ [OneToManyBidirectionalRelation<From,To>](DiGi.Core.Relation.Classes.md#DiGi.Core.Relation.Classes.OneToManyBidirectionalRelation_From,To_ 'DiGi\.Core\.Relation\.Classes\.OneToManyBidirectionalRelation\') ↳ [OneToOneBidirectionalRelation<From,To>](DiGi.Core.Relation.Classes.md#DiGi.Core.Relation.Classes.OneToOneBidirectionalRelation_From,To_ 'DiGi\.Core\.Relation\.Classes\.OneToOneBidirectionalRelation\') Implements [IBidirectionalRelation](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IBidirectionalRelation 'DiGi\.Core\.Relation\.Interfaces\.IBidirectionalRelation'), [IRelation](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IRelation 'DiGi\.Core\.Relation\.Interfaces\.IRelation'), [DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject'), [DiGi\.Core\.Interfaces\.ICloneableObject<](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1 'DiGi\.Core\.Interfaces\.ICloneableObject\`1')[DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject')[>](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1 'DiGi\.Core\.Interfaces\.ICloneableObject\`1'), [DiGi\.Core\.Interfaces\.ICloneableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject 'DiGi\.Core\.Interfaces\.ICloneableObject'), [DiGi\.Core\.Interfaces\.IObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iobject 'DiGi\.Core\.Interfaces\.IObject'), [DiGi\.Core\.Relation\.Interfaces\.IRelation<](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IRelation_From,To_ 'DiGi\.Core\.Relation\.Interfaces\.IRelation\')[X](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IBidirectionalRelation_X,Y_.X 'DiGi\.Core\.Relation\.Interfaces\.IBidirectionalRelation\\.X')[,](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IRelation_From,To_ 'DiGi\.Core\.Relation\.Interfaces\.IRelation\')[Y](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IBidirectionalRelation_X,Y_.Y 'DiGi\.Core\.Relation\.Interfaces\.IBidirectionalRelation\\.Y')[>](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IRelation_From,To_ 'DiGi\.Core\.Relation\.Interfaces\.IRelation\') ## IDirectionalRelation Interface Defines the contract for a directional relation between unique objects\. ```csharp public interface IDirectionalRelation : DiGi.Core.Relation.Interfaces.IRelation, DiGi.Core.Interfaces.ISerializableObject, DiGi.Core.Interfaces.ICloneableObject, DiGi.Core.Interfaces.ICloneableObject, DiGi.Core.Interfaces.IObject ``` Derived ↳ [OneToManyDirectionalRelation<XUniqueObject,YUniqueObject>](DiGi.Core.Relation.Classes.md#DiGi.Core.Relation.Classes.OneToManyDirectionalRelation_XUniqueObject,YUniqueObject_ 'DiGi\.Core\.Relation\.Classes\.OneToManyDirectionalRelation\') ↳ [OneToOneDirectionalRelation<XUniqueObject,YUniqueObject>](DiGi.Core.Relation.Classes.md#DiGi.Core.Relation.Classes.OneToOneDirectionalRelation_XUniqueObject,YUniqueObject_ 'DiGi\.Core\.Relation\.Classes\.OneToOneDirectionalRelation\') ↳ [IDirectionalRelation<XUniqueObject,YUniqueObject>](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IDirectionalRelation_XUniqueObject,YUniqueObject_ 'DiGi\.Core\.Relation\.Interfaces\.IDirectionalRelation\') Implements [IRelation](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IRelation 'DiGi\.Core\.Relation\.Interfaces\.IRelation'), [DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject'), [DiGi\.Core\.Interfaces\.ICloneableObject<](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1 'DiGi\.Core\.Interfaces\.ICloneableObject\`1')[DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject')[>](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1 'DiGi\.Core\.Interfaces\.ICloneableObject\`1'), [DiGi\.Core\.Interfaces\.ICloneableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject 'DiGi\.Core\.Interfaces\.ICloneableObject'), [DiGi\.Core\.Interfaces\.IObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iobject 'DiGi\.Core\.Interfaces\.IObject') ## IDirectionalRelation\ Interface Defines the contract for a directional relation between two types of unique objects\. ```csharp public interface IDirectionalRelation : DiGi.Core.Relation.Interfaces.IDirectionalRelation, DiGi.Core.Relation.Interfaces.IRelation, DiGi.Core.Interfaces.ISerializableObject, DiGi.Core.Interfaces.ICloneableObject, DiGi.Core.Interfaces.ICloneableObject, DiGi.Core.Interfaces.IObject, DiGi.Core.Relation.Interfaces.IRelation where XUniqueObject : DiGi.Core.Interfaces.IUniqueObject where YUniqueObject : DiGi.Core.Interfaces.IUniqueObject ``` #### Type parameters `XUniqueObject` The type of the source unique object\. `YUniqueObject` The type of the target unique object\. Derived ↳ [OneToManyDirectionalRelation<XUniqueObject,YUniqueObject>](DiGi.Core.Relation.Classes.md#DiGi.Core.Relation.Classes.OneToManyDirectionalRelation_XUniqueObject,YUniqueObject_ 'DiGi\.Core\.Relation\.Classes\.OneToManyDirectionalRelation\') ↳ [OneToOneDirectionalRelation<XUniqueObject,YUniqueObject>](DiGi.Core.Relation.Classes.md#DiGi.Core.Relation.Classes.OneToOneDirectionalRelation_XUniqueObject,YUniqueObject_ 'DiGi\.Core\.Relation\.Classes\.OneToOneDirectionalRelation\') Implements [IDirectionalRelation](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IDirectionalRelation 'DiGi\.Core\.Relation\.Interfaces\.IDirectionalRelation'), [IRelation](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IRelation 'DiGi\.Core\.Relation\.Interfaces\.IRelation'), [DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject'), [DiGi\.Core\.Interfaces\.ICloneableObject<](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1 'DiGi\.Core\.Interfaces\.ICloneableObject\`1')[DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject')[>](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1 'DiGi\.Core\.Interfaces\.ICloneableObject\`1'), [DiGi\.Core\.Interfaces\.ICloneableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject 'DiGi\.Core\.Interfaces\.ICloneableObject'), [DiGi\.Core\.Interfaces\.IObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iobject 'DiGi\.Core\.Interfaces\.IObject'), [DiGi\.Core\.Relation\.Interfaces\.IRelation<](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IRelation_From,To_ 'DiGi\.Core\.Relation\.Interfaces\.IRelation\')[XUniqueObject](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IDirectionalRelation_XUniqueObject,YUniqueObject_.XUniqueObject 'DiGi\.Core\.Relation\.Interfaces\.IDirectionalRelation\\.XUniqueObject')[,](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IRelation_From,To_ 'DiGi\.Core\.Relation\.Interfaces\.IRelation\')[YUniqueObject](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IDirectionalRelation_XUniqueObject,YUniqueObject_.YUniqueObject 'DiGi\.Core\.Relation\.Interfaces\.IDirectionalRelation\\.YUniqueObject')[>](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IRelation_From,To_ 'DiGi\.Core\.Relation\.Interfaces\.IRelation\') ## IManyToManyRelation Interface Defines the contract for a many\-to\-many relationship between unique objects\. ```csharp public interface IManyToManyRelation : DiGi.Core.Relation.Interfaces.IRelation, DiGi.Core.Interfaces.ISerializableObject, DiGi.Core.Interfaces.ICloneableObject, DiGi.Core.Interfaces.ICloneableObject, DiGi.Core.Interfaces.IObject ``` Derived ↳ [ManyToManyRelation<From,To>](DiGi.Core.Relation.Classes.md#DiGi.Core.Relation.Classes.ManyToManyRelation_From,To_ 'DiGi\.Core\.Relation\.Classes\.ManyToManyRelation\') ↳ [IManyToManyRelation<XUniqueObject,YUniqueObject>](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IManyToManyRelation_XUniqueObject,YUniqueObject_ 'DiGi\.Core\.Relation\.Interfaces\.IManyToManyRelation\') Implements [IRelation](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IRelation 'DiGi\.Core\.Relation\.Interfaces\.IRelation'), [DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject'), [DiGi\.Core\.Interfaces\.ICloneableObject<](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1 'DiGi\.Core\.Interfaces\.ICloneableObject\`1')[DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject')[>](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1 'DiGi\.Core\.Interfaces\.ICloneableObject\`1'), [DiGi\.Core\.Interfaces\.ICloneableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject 'DiGi\.Core\.Interfaces\.ICloneableObject'), [DiGi\.Core\.Interfaces\.IObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iobject 'DiGi\.Core\.Interfaces\.IObject') ### Properties ## IManyToManyRelation\.UniqueReferences\_From Property Gets a list of unique references on the "from" side of the relation\. ```csharp System.Collections.Generic.List? UniqueReferences_From { get; } ``` #### Property Value [System\.Collections\.Generic\.List<](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1 'System\.Collections\.Generic\.List\`1')[DiGi\.Core\.Interfaces\.IUniqueReference](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iuniquereference 'DiGi\.Core\.Interfaces\.IUniqueReference')[>](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1 'System\.Collections\.Generic\.List\`1') ## IManyToManyRelation\.UniqueReferences\_To Property Gets a list of unique references on the "to" side of the relation\. ```csharp System.Collections.Generic.List? UniqueReferences_To { get; } ``` #### Property Value [System\.Collections\.Generic\.List<](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1 'System\.Collections\.Generic\.List\`1')[DiGi\.Core\.Interfaces\.IUniqueReference](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iuniquereference 'DiGi\.Core\.Interfaces\.IUniqueReference')[>](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1 'System\.Collections\.Generic\.List\`1') ## IManyToManyRelation\ Interface Defines the contract for a many\-to\-many relationship between two types of unique objects\. ```csharp public interface IManyToManyRelation : DiGi.Core.Relation.Interfaces.IManyToManyRelation, DiGi.Core.Relation.Interfaces.IRelation, DiGi.Core.Interfaces.ISerializableObject, DiGi.Core.Interfaces.ICloneableObject, DiGi.Core.Interfaces.ICloneableObject, DiGi.Core.Interfaces.IObject, DiGi.Core.Relation.Interfaces.IRelation where XUniqueObject : DiGi.Core.Interfaces.IUniqueObject where YUniqueObject : DiGi.Core.Interfaces.IUniqueObject ``` #### Type parameters `XUniqueObject` `YUniqueObject` Derived ↳ [ManyToManyRelation<From,To>](DiGi.Core.Relation.Classes.md#DiGi.Core.Relation.Classes.ManyToManyRelation_From,To_ 'DiGi\.Core\.Relation\.Classes\.ManyToManyRelation\') Implements [IManyToManyRelation](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IManyToManyRelation 'DiGi\.Core\.Relation\.Interfaces\.IManyToManyRelation'), [IRelation](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IRelation 'DiGi\.Core\.Relation\.Interfaces\.IRelation'), [DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject'), [DiGi\.Core\.Interfaces\.ICloneableObject<](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1 'DiGi\.Core\.Interfaces\.ICloneableObject\`1')[DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject')[>](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1 'DiGi\.Core\.Interfaces\.ICloneableObject\`1'), [DiGi\.Core\.Interfaces\.ICloneableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject 'DiGi\.Core\.Interfaces\.ICloneableObject'), [DiGi\.Core\.Interfaces\.IObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iobject 'DiGi\.Core\.Interfaces\.IObject'), [DiGi\.Core\.Relation\.Interfaces\.IRelation<](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IRelation_From,To_ 'DiGi\.Core\.Relation\.Interfaces\.IRelation\')[XUniqueObject](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IManyToManyRelation_XUniqueObject,YUniqueObject_.XUniqueObject 'DiGi\.Core\.Relation\.Interfaces\.IManyToManyRelation\\.XUniqueObject')[,](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IRelation_From,To_ 'DiGi\.Core\.Relation\.Interfaces\.IRelation\')[YUniqueObject](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IManyToManyRelation_XUniqueObject,YUniqueObject_.YUniqueObject 'DiGi\.Core\.Relation\.Interfaces\.IManyToManyRelation\\.YUniqueObject')[>](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IRelation_From,To_ 'DiGi\.Core\.Relation\.Interfaces\.IRelation\') ## IManyToOneRelation Interface Defines the contract for a many\-to\-one relationship between unique objects\. ```csharp public interface IManyToOneRelation : DiGi.Core.Relation.Interfaces.IRelation, DiGi.Core.Interfaces.ISerializableObject, DiGi.Core.Interfaces.ICloneableObject, DiGi.Core.Interfaces.ICloneableObject, DiGi.Core.Interfaces.IObject ``` Derived ↳ [ManyToOneRelation<From,To>](DiGi.Core.Relation.Classes.md#DiGi.Core.Relation.Classes.ManyToOneRelation_From,To_ 'DiGi\.Core\.Relation\.Classes\.ManyToOneRelation\') ↳ [IManyToOneRelation<XUniqueObject,YUniqueObject>](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IManyToOneRelation_XUniqueObject,YUniqueObject_ 'DiGi\.Core\.Relation\.Interfaces\.IManyToOneRelation\') Implements [IRelation](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IRelation 'DiGi\.Core\.Relation\.Interfaces\.IRelation'), [DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject'), [DiGi\.Core\.Interfaces\.ICloneableObject<](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1 'DiGi\.Core\.Interfaces\.ICloneableObject\`1')[DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject')[>](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1 'DiGi\.Core\.Interfaces\.ICloneableObject\`1'), [DiGi\.Core\.Interfaces\.ICloneableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject 'DiGi\.Core\.Interfaces\.ICloneableObject'), [DiGi\.Core\.Interfaces\.IObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iobject 'DiGi\.Core\.Interfaces\.IObject') ### Properties ## IManyToOneRelation\.UniqueReferences\_From Property Gets a list of unique references on the "from" side of the relation\. ```csharp System.Collections.Generic.List? UniqueReferences_From { get; } ``` #### Property Value [System\.Collections\.Generic\.List<](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1 'System\.Collections\.Generic\.List\`1')[DiGi\.Core\.Interfaces\.IUniqueReference](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iuniquereference 'DiGi\.Core\.Interfaces\.IUniqueReference')[>](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1 'System\.Collections\.Generic\.List\`1') ## IManyToOneRelation\.UniqueReference\_To Property Gets the unique reference on the "to" side of the relation\. ```csharp DiGi.Core.Interfaces.IUniqueReference? UniqueReference_To { get; } ``` #### Property Value [DiGi\.Core\.Interfaces\.IUniqueReference](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iuniquereference 'DiGi\.Core\.Interfaces\.IUniqueReference') ## IManyToOneRelation\ Interface Defines the contract for a many\-to\-one relationship between two types of unique objects\. ```csharp public interface IManyToOneRelation : DiGi.Core.Relation.Interfaces.IManyToOneRelation, DiGi.Core.Relation.Interfaces.IRelation, DiGi.Core.Interfaces.ISerializableObject, DiGi.Core.Interfaces.ICloneableObject, DiGi.Core.Interfaces.ICloneableObject, DiGi.Core.Interfaces.IObject, DiGi.Core.Relation.Interfaces.IRelation where XUniqueObject : DiGi.Core.Interfaces.IUniqueObject where YUniqueObject : DiGi.Core.Interfaces.IUniqueObject ``` #### Type parameters `XUniqueObject` `YUniqueObject` Derived ↳ [ManyToOneRelation<From,To>](DiGi.Core.Relation.Classes.md#DiGi.Core.Relation.Classes.ManyToOneRelation_From,To_ 'DiGi\.Core\.Relation\.Classes\.ManyToOneRelation\') Implements [IManyToOneRelation](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IManyToOneRelation 'DiGi\.Core\.Relation\.Interfaces\.IManyToOneRelation'), [IRelation](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IRelation 'DiGi\.Core\.Relation\.Interfaces\.IRelation'), [DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject'), [DiGi\.Core\.Interfaces\.ICloneableObject<](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1 'DiGi\.Core\.Interfaces\.ICloneableObject\`1')[DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject')[>](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1 'DiGi\.Core\.Interfaces\.ICloneableObject\`1'), [DiGi\.Core\.Interfaces\.ICloneableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject 'DiGi\.Core\.Interfaces\.ICloneableObject'), [DiGi\.Core\.Interfaces\.IObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iobject 'DiGi\.Core\.Interfaces\.IObject'), [DiGi\.Core\.Relation\.Interfaces\.IRelation<](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IRelation_From,To_ 'DiGi\.Core\.Relation\.Interfaces\.IRelation\')[XUniqueObject](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IManyToOneRelation_XUniqueObject,YUniqueObject_.XUniqueObject 'DiGi\.Core\.Relation\.Interfaces\.IManyToOneRelation\\.XUniqueObject')[,](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IRelation_From,To_ 'DiGi\.Core\.Relation\.Interfaces\.IRelation\')[YUniqueObject](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IManyToOneRelation_XUniqueObject,YUniqueObject_.YUniqueObject 'DiGi\.Core\.Relation\.Interfaces\.IManyToOneRelation\\.YUniqueObject')[>](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IRelation_From,To_ 'DiGi\.Core\.Relation\.Interfaces\.IRelation\') ## IOneToManyRelation Interface Defines the contract for a one\-to\-many relationship between unique objects\. ```csharp public interface IOneToManyRelation : DiGi.Core.Relation.Interfaces.IRelation, DiGi.Core.Interfaces.ISerializableObject, DiGi.Core.Interfaces.ICloneableObject, DiGi.Core.Interfaces.ICloneableObject, DiGi.Core.Interfaces.IObject ``` Derived ↳ [OneToManyRelation<From,To>](DiGi.Core.Relation.Classes.md#DiGi.Core.Relation.Classes.OneToManyRelation_From,To_ 'DiGi\.Core\.Relation\.Classes\.OneToManyRelation\') ↳ [IOneToManyRelation<XUniqueObject,YUniqueObject>](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IOneToManyRelation_XUniqueObject,YUniqueObject_ 'DiGi\.Core\.Relation\.Interfaces\.IOneToManyRelation\') Implements [IRelation](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IRelation 'DiGi\.Core\.Relation\.Interfaces\.IRelation'), [DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject'), [DiGi\.Core\.Interfaces\.ICloneableObject<](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1 'DiGi\.Core\.Interfaces\.ICloneableObject\`1')[DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject')[>](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1 'DiGi\.Core\.Interfaces\.ICloneableObject\`1'), [DiGi\.Core\.Interfaces\.ICloneableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject 'DiGi\.Core\.Interfaces\.ICloneableObject'), [DiGi\.Core\.Interfaces\.IObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iobject 'DiGi\.Core\.Interfaces\.IObject') ### Properties ## IOneToManyRelation\.UniqueReferences\_To Property Gets a list of unique references on the "to" side of the relation\. ```csharp System.Collections.Generic.List? UniqueReferences_To { get; } ``` #### Property Value [System\.Collections\.Generic\.List<](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1 'System\.Collections\.Generic\.List\`1')[DiGi\.Core\.Interfaces\.IUniqueReference](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iuniquereference 'DiGi\.Core\.Interfaces\.IUniqueReference')[>](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1 'System\.Collections\.Generic\.List\`1') ## IOneToManyRelation\.UniqueReference\_From Property Gets the unique reference on the "from" side of the relation\. ```csharp DiGi.Core.Interfaces.IUniqueReference? UniqueReference_From { get; } ``` #### Property Value [DiGi\.Core\.Interfaces\.IUniqueReference](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iuniquereference 'DiGi\.Core\.Interfaces\.IUniqueReference') ## IOneToManyRelation\ Interface Defines the contract for a one\-to\-many relationship between two types of unique objects\. ```csharp public interface IOneToManyRelation : DiGi.Core.Relation.Interfaces.IOneToManyRelation, DiGi.Core.Relation.Interfaces.IRelation, DiGi.Core.Interfaces.ISerializableObject, DiGi.Core.Interfaces.ICloneableObject, DiGi.Core.Interfaces.ICloneableObject, DiGi.Core.Interfaces.IObject, DiGi.Core.Relation.Interfaces.IRelation where XUniqueObject : DiGi.Core.Interfaces.IUniqueObject where YUniqueObject : DiGi.Core.Interfaces.IUniqueObject ``` #### Type parameters `XUniqueObject` `YUniqueObject` Derived ↳ [OneToManyRelation<From,To>](DiGi.Core.Relation.Classes.md#DiGi.Core.Relation.Classes.OneToManyRelation_From,To_ 'DiGi\.Core\.Relation\.Classes\.OneToManyRelation\') Implements [IOneToManyRelation](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IOneToManyRelation 'DiGi\.Core\.Relation\.Interfaces\.IOneToManyRelation'), [IRelation](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IRelation 'DiGi\.Core\.Relation\.Interfaces\.IRelation'), [DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject'), [DiGi\.Core\.Interfaces\.ICloneableObject<](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1 'DiGi\.Core\.Interfaces\.ICloneableObject\`1')[DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject')[>](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1 'DiGi\.Core\.Interfaces\.ICloneableObject\`1'), [DiGi\.Core\.Interfaces\.ICloneableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject 'DiGi\.Core\.Interfaces\.ICloneableObject'), [DiGi\.Core\.Interfaces\.IObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iobject 'DiGi\.Core\.Interfaces\.IObject'), [DiGi\.Core\.Relation\.Interfaces\.IRelation<](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IRelation_From,To_ 'DiGi\.Core\.Relation\.Interfaces\.IRelation\')[XUniqueObject](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IOneToManyRelation_XUniqueObject,YUniqueObject_.XUniqueObject 'DiGi\.Core\.Relation\.Interfaces\.IOneToManyRelation\\.XUniqueObject')[,](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IRelation_From,To_ 'DiGi\.Core\.Relation\.Interfaces\.IRelation\')[YUniqueObject](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IOneToManyRelation_XUniqueObject,YUniqueObject_.YUniqueObject 'DiGi\.Core\.Relation\.Interfaces\.IOneToManyRelation\\.YUniqueObject')[>](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IRelation_From,To_ 'DiGi\.Core\.Relation\.Interfaces\.IRelation\') ## IOneToOneRelation Interface Defines the contract for a one\-to\-one relationship between unique objects\. ```csharp public interface IOneToOneRelation : DiGi.Core.Relation.Interfaces.IRelation, DiGi.Core.Interfaces.ISerializableObject, DiGi.Core.Interfaces.ICloneableObject, DiGi.Core.Interfaces.ICloneableObject, DiGi.Core.Interfaces.IObject ``` Derived ↳ [OneToOneRelation<From,To>](DiGi.Core.Relation.Classes.md#DiGi.Core.Relation.Classes.OneToOneRelation_From,To_ 'DiGi\.Core\.Relation\.Classes\.OneToOneRelation\') ↳ [IOneToOneRelation<XUniqueObject,YUniqueObject>](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IOneToOneRelation_XUniqueObject,YUniqueObject_ 'DiGi\.Core\.Relation\.Interfaces\.IOneToOneRelation\') Implements [IRelation](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IRelation 'DiGi\.Core\.Relation\.Interfaces\.IRelation'), [DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject'), [DiGi\.Core\.Interfaces\.ICloneableObject<](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1 'DiGi\.Core\.Interfaces\.ICloneableObject\`1')[DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject')[>](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1 'DiGi\.Core\.Interfaces\.ICloneableObject\`1'), [DiGi\.Core\.Interfaces\.ICloneableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject 'DiGi\.Core\.Interfaces\.ICloneableObject'), [DiGi\.Core\.Interfaces\.IObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iobject 'DiGi\.Core\.Interfaces\.IObject') ### Properties ## IOneToOneRelation\.UniqueReference\_From Property Gets the unique reference on the "from" side of the relation\. ```csharp DiGi.Core.Interfaces.IUniqueReference? UniqueReference_From { get; } ``` #### Property Value [DiGi\.Core\.Interfaces\.IUniqueReference](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iuniquereference 'DiGi\.Core\.Interfaces\.IUniqueReference') ## IOneToOneRelation\.UniqueReference\_To Property Gets the unique reference on the "to" side of the relation\. ```csharp DiGi.Core.Interfaces.IUniqueReference? UniqueReference_To { get; } ``` #### Property Value [DiGi\.Core\.Interfaces\.IUniqueReference](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iuniquereference 'DiGi\.Core\.Interfaces\.IUniqueReference') ## IOneToOneRelation\ Interface Defines the contract for a one\-to\-one relationship between two types of unique objects\. ```csharp public interface IOneToOneRelation : DiGi.Core.Relation.Interfaces.IOneToOneRelation, DiGi.Core.Relation.Interfaces.IRelation, DiGi.Core.Interfaces.ISerializableObject, DiGi.Core.Interfaces.ICloneableObject, DiGi.Core.Interfaces.ICloneableObject, DiGi.Core.Interfaces.IObject, DiGi.Core.Relation.Interfaces.IRelation where XUniqueObject : DiGi.Core.Interfaces.IUniqueObject where YUniqueObject : DiGi.Core.Interfaces.IUniqueObject ``` #### Type parameters `XUniqueObject` `YUniqueObject` Derived ↳ [OneToOneRelation<From,To>](DiGi.Core.Relation.Classes.md#DiGi.Core.Relation.Classes.OneToOneRelation_From,To_ 'DiGi\.Core\.Relation\.Classes\.OneToOneRelation\') Implements [IOneToOneRelation](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IOneToOneRelation 'DiGi\.Core\.Relation\.Interfaces\.IOneToOneRelation'), [IRelation](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IRelation 'DiGi\.Core\.Relation\.Interfaces\.IRelation'), [DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject'), [DiGi\.Core\.Interfaces\.ICloneableObject<](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1 'DiGi\.Core\.Interfaces\.ICloneableObject\`1')[DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject')[>](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1 'DiGi\.Core\.Interfaces\.ICloneableObject\`1'), [DiGi\.Core\.Interfaces\.ICloneableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject 'DiGi\.Core\.Interfaces\.ICloneableObject'), [DiGi\.Core\.Interfaces\.IObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iobject 'DiGi\.Core\.Interfaces\.IObject'), [DiGi\.Core\.Relation\.Interfaces\.IRelation<](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IRelation_From,To_ 'DiGi\.Core\.Relation\.Interfaces\.IRelation\')[XUniqueObject](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IOneToOneRelation_XUniqueObject,YUniqueObject_.XUniqueObject 'DiGi\.Core\.Relation\.Interfaces\.IOneToOneRelation\\.XUniqueObject')[,](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IRelation_From,To_ 'DiGi\.Core\.Relation\.Interfaces\.IRelation\')[YUniqueObject](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IOneToOneRelation_XUniqueObject,YUniqueObject_.YUniqueObject 'DiGi\.Core\.Relation\.Interfaces\.IOneToOneRelation\\.YUniqueObject')[>](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IRelation_From,To_ 'DiGi\.Core\.Relation\.Interfaces\.IRelation\') ## IRelation Interface Defines the contract for a relationship between unique objects\. ```csharp public interface IRelation : DiGi.Core.Interfaces.ISerializableObject, DiGi.Core.Interfaces.ICloneableObject, DiGi.Core.Interfaces.ICloneableObject, DiGi.Core.Interfaces.IObject ``` Derived ↳ [ManyToManyRelation<From,To>](DiGi.Core.Relation.Classes.md#DiGi.Core.Relation.Classes.ManyToManyRelation_From,To_ 'DiGi\.Core\.Relation\.Classes\.ManyToManyRelation\') ↳ [ManyToOneRelation<From,To>](DiGi.Core.Relation.Classes.md#DiGi.Core.Relation.Classes.ManyToOneRelation_From,To_ 'DiGi\.Core\.Relation\.Classes\.ManyToOneRelation\') ↳ [OneToManyBidirectionalRelation<From,To>](DiGi.Core.Relation.Classes.md#DiGi.Core.Relation.Classes.OneToManyBidirectionalRelation_From,To_ 'DiGi\.Core\.Relation\.Classes\.OneToManyBidirectionalRelation\') ↳ [OneToManyDirectionalRelation<XUniqueObject,YUniqueObject>](DiGi.Core.Relation.Classes.md#DiGi.Core.Relation.Classes.OneToManyDirectionalRelation_XUniqueObject,YUniqueObject_ 'DiGi\.Core\.Relation\.Classes\.OneToManyDirectionalRelation\') ↳ [OneToManyRelation<From,To>](DiGi.Core.Relation.Classes.md#DiGi.Core.Relation.Classes.OneToManyRelation_From,To_ 'DiGi\.Core\.Relation\.Classes\.OneToManyRelation\') ↳ [OneToOneBidirectionalRelation<From,To>](DiGi.Core.Relation.Classes.md#DiGi.Core.Relation.Classes.OneToOneBidirectionalRelation_From,To_ 'DiGi\.Core\.Relation\.Classes\.OneToOneBidirectionalRelation\') ↳ [OneToOneDirectionalRelation<XUniqueObject,YUniqueObject>](DiGi.Core.Relation.Classes.md#DiGi.Core.Relation.Classes.OneToOneDirectionalRelation_XUniqueObject,YUniqueObject_ 'DiGi\.Core\.Relation\.Classes\.OneToOneDirectionalRelation\') ↳ [OneToOneRelation<From,To>](DiGi.Core.Relation.Classes.md#DiGi.Core.Relation.Classes.OneToOneRelation_From,To_ 'DiGi\.Core\.Relation\.Classes\.OneToOneRelation\') ↳ [Relation](DiGi.Core.Relation.Classes.md#DiGi.Core.Relation.Classes.Relation 'DiGi\.Core\.Relation\.Classes\.Relation') ↳ [Relation<From,To>](DiGi.Core.Relation.Classes.md#DiGi.Core.Relation.Classes.Relation_From,To_ 'DiGi\.Core\.Relation\.Classes\.Relation\') ↳ [IBidirectionalRelation](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IBidirectionalRelation 'DiGi\.Core\.Relation\.Interfaces\.IBidirectionalRelation') ↳ [IBidirectionalRelation<X,Y>](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IBidirectionalRelation_X,Y_ 'DiGi\.Core\.Relation\.Interfaces\.IBidirectionalRelation\') ↳ [IDirectionalRelation](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IDirectionalRelation 'DiGi\.Core\.Relation\.Interfaces\.IDirectionalRelation') ↳ [IDirectionalRelation<XUniqueObject,YUniqueObject>](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IDirectionalRelation_XUniqueObject,YUniqueObject_ 'DiGi\.Core\.Relation\.Interfaces\.IDirectionalRelation\') ↳ [IManyToManyRelation](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IManyToManyRelation 'DiGi\.Core\.Relation\.Interfaces\.IManyToManyRelation') ↳ [IManyToManyRelation<XUniqueObject,YUniqueObject>](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IManyToManyRelation_XUniqueObject,YUniqueObject_ 'DiGi\.Core\.Relation\.Interfaces\.IManyToManyRelation\') ↳ [IManyToOneRelation](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IManyToOneRelation 'DiGi\.Core\.Relation\.Interfaces\.IManyToOneRelation') ↳ [IManyToOneRelation<XUniqueObject,YUniqueObject>](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IManyToOneRelation_XUniqueObject,YUniqueObject_ 'DiGi\.Core\.Relation\.Interfaces\.IManyToOneRelation\') ↳ [IOneToManyRelation](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IOneToManyRelation 'DiGi\.Core\.Relation\.Interfaces\.IOneToManyRelation') ↳ [IOneToManyRelation<XUniqueObject,YUniqueObject>](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IOneToManyRelation_XUniqueObject,YUniqueObject_ 'DiGi\.Core\.Relation\.Interfaces\.IOneToManyRelation\') ↳ [IOneToOneRelation](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IOneToOneRelation 'DiGi\.Core\.Relation\.Interfaces\.IOneToOneRelation') ↳ [IOneToOneRelation<XUniqueObject,YUniqueObject>](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IOneToOneRelation_XUniqueObject,YUniqueObject_ 'DiGi\.Core\.Relation\.Interfaces\.IOneToOneRelation\') ↳ [IRelation<From,To>](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IRelation_From,To_ 'DiGi\.Core\.Relation\.Interfaces\.IRelation\') Implements [DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject'), [DiGi\.Core\.Interfaces\.ICloneableObject<](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1 'DiGi\.Core\.Interfaces\.ICloneableObject\`1')[DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject')[>](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1 'DiGi\.Core\.Interfaces\.ICloneableObject\`1'), [DiGi\.Core\.Interfaces\.ICloneableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject 'DiGi\.Core\.Interfaces\.ICloneableObject'), [DiGi\.Core\.Interfaces\.IObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iobject 'DiGi\.Core\.Interfaces\.IObject') ### Properties ## IRelation\.UniqueReferences Property Gets a list containing all unique references in this relation\. ```csharp System.Collections.Generic.List? UniqueReferences { get; } ``` #### Property Value [System\.Collections\.Generic\.List<](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1 'System\.Collections\.Generic\.List\`1')[DiGi\.Core\.Interfaces\.IUniqueReference](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iuniquereference 'DiGi\.Core\.Interfaces\.IUniqueReference')[>](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1 'System\.Collections\.Generic\.List\`1') ### Methods ## IRelation\.Contains\(RelationSide, IUniqueReference\) Method Determines whether the relation contains the specified unique reference on the given side\. ```csharp bool Contains(DiGi.Core.Relation.Enums.RelationSide relationSide, DiGi.Core.Interfaces.IUniqueReference? uniqueReference); ``` #### Parameters `relationSide` [RelationSide](DiGi.Core.Relation.Enums.md#DiGi.Core.Relation.Enums.RelationSide 'DiGi\.Core\.Relation\.Enums\.RelationSide') `uniqueReference` [DiGi\.Core\.Interfaces\.IUniqueReference](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iuniquereference 'DiGi\.Core\.Interfaces\.IUniqueReference') #### Returns [System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean') ## IRelation\.GetType\(RelationSide\) Method Gets the type of the object on the specified side of the relation\. ```csharp System.Type? GetType(DiGi.Core.Relation.Enums.RelationSide relationSide); ``` #### Parameters `relationSide` [RelationSide](DiGi.Core.Relation.Enums.md#DiGi.Core.Relation.Enums.RelationSide 'DiGi\.Core\.Relation\.Enums\.RelationSide') #### Returns [System\.Type](https://learn.microsoft.com/en-us/dotnet/api/system.type 'System\.Type') ## IRelation\.Has\(RelationSide\) Method Determines whether the relation has a reference on the specified side\. ```csharp bool Has(DiGi.Core.Relation.Enums.RelationSide relationSide); ``` #### Parameters `relationSide` [RelationSide](DiGi.Core.Relation.Enums.md#DiGi.Core.Relation.Enums.RelationSide 'DiGi\.Core\.Relation\.Enums\.RelationSide') #### Returns [System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean') ## IRelation\.Remove\(RelationSide, IUniqueReference\) Method Removes a unique reference from the specified side of the relation\. ```csharp bool Remove(DiGi.Core.Relation.Enums.RelationSide relationSide, DiGi.Core.Interfaces.IUniqueReference? uniqueReference); ``` #### Parameters `relationSide` [RelationSide](DiGi.Core.Relation.Enums.md#DiGi.Core.Relation.Enums.RelationSide 'DiGi\.Core\.Relation\.Enums\.RelationSide') `uniqueReference` [DiGi\.Core\.Interfaces\.IUniqueReference](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iuniquereference 'DiGi\.Core\.Interfaces\.IUniqueReference') #### Returns [System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean') ## IRelation\.Remove\\(RelationSide, IEnumerable\\) Method Removes multiple unique references from the specified side of the relation\. ```csharp System.Collections.Generic.List? Remove(DiGi.Core.Relation.Enums.RelationSide relationSide, System.Collections.Generic.IEnumerable? uniqueReferences) where TUniqueReference : DiGi.Core.Interfaces.IUniqueReference; ``` #### Type parameters `TUniqueReference` #### Parameters `relationSide` [RelationSide](DiGi.Core.Relation.Enums.md#DiGi.Core.Relation.Enums.RelationSide 'DiGi\.Core\.Relation\.Enums\.RelationSide') `uniqueReferences` [System\.Collections\.Generic\.IEnumerable<](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.ienumerable-1 'System\.Collections\.Generic\.IEnumerable\`1')[TUniqueReference](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IRelation.Remove_TUniqueReference_(DiGi.Core.Relation.Enums.RelationSide,System.Collections.Generic.IEnumerable_TUniqueReference_).TUniqueReference 'DiGi\.Core\.Relation\.Interfaces\.IRelation\.Remove\\(DiGi\.Core\.Relation\.Enums\.RelationSide, System\.Collections\.Generic\.IEnumerable\\)\.TUniqueReference')[>](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.ienumerable-1 'System\.Collections\.Generic\.IEnumerable\`1') #### Returns [System\.Collections\.Generic\.List<](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1 'System\.Collections\.Generic\.List\`1')[TUniqueReference](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IRelation.Remove_TUniqueReference_(DiGi.Core.Relation.Enums.RelationSide,System.Collections.Generic.IEnumerable_TUniqueReference_).TUniqueReference 'DiGi\.Core\.Relation\.Interfaces\.IRelation\.Remove\\(DiGi\.Core\.Relation\.Enums\.RelationSide, System\.Collections\.Generic\.IEnumerable\\)\.TUniqueReference')[>](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1 'System\.Collections\.Generic\.List\`1') ## IRelation\ Interface Defines the contract for a relationship between two types of unique objects\. ```csharp public interface IRelation : DiGi.Core.Relation.Interfaces.IRelation, DiGi.Core.Interfaces.ISerializableObject, DiGi.Core.Interfaces.ICloneableObject, DiGi.Core.Interfaces.ICloneableObject, DiGi.Core.Interfaces.IObject where From : DiGi.Core.Interfaces.IUniqueObject where To : DiGi.Core.Interfaces.IUniqueObject ``` #### Type parameters `From` `To` Derived ↳ [ManyToManyRelation<From,To>](DiGi.Core.Relation.Classes.md#DiGi.Core.Relation.Classes.ManyToManyRelation_From,To_ 'DiGi\.Core\.Relation\.Classes\.ManyToManyRelation\') ↳ [ManyToOneRelation<From,To>](DiGi.Core.Relation.Classes.md#DiGi.Core.Relation.Classes.ManyToOneRelation_From,To_ 'DiGi\.Core\.Relation\.Classes\.ManyToOneRelation\') ↳ [OneToManyBidirectionalRelation<From,To>](DiGi.Core.Relation.Classes.md#DiGi.Core.Relation.Classes.OneToManyBidirectionalRelation_From,To_ 'DiGi\.Core\.Relation\.Classes\.OneToManyBidirectionalRelation\') ↳ [OneToManyDirectionalRelation<XUniqueObject,YUniqueObject>](DiGi.Core.Relation.Classes.md#DiGi.Core.Relation.Classes.OneToManyDirectionalRelation_XUniqueObject,YUniqueObject_ 'DiGi\.Core\.Relation\.Classes\.OneToManyDirectionalRelation\') ↳ [OneToManyRelation<From,To>](DiGi.Core.Relation.Classes.md#DiGi.Core.Relation.Classes.OneToManyRelation_From,To_ 'DiGi\.Core\.Relation\.Classes\.OneToManyRelation\') ↳ [OneToOneBidirectionalRelation<From,To>](DiGi.Core.Relation.Classes.md#DiGi.Core.Relation.Classes.OneToOneBidirectionalRelation_From,To_ 'DiGi\.Core\.Relation\.Classes\.OneToOneBidirectionalRelation\') ↳ [OneToOneDirectionalRelation<XUniqueObject,YUniqueObject>](DiGi.Core.Relation.Classes.md#DiGi.Core.Relation.Classes.OneToOneDirectionalRelation_XUniqueObject,YUniqueObject_ 'DiGi\.Core\.Relation\.Classes\.OneToOneDirectionalRelation\') ↳ [OneToOneRelation<From,To>](DiGi.Core.Relation.Classes.md#DiGi.Core.Relation.Classes.OneToOneRelation_From,To_ 'DiGi\.Core\.Relation\.Classes\.OneToOneRelation\') ↳ [Relation<From,To>](DiGi.Core.Relation.Classes.md#DiGi.Core.Relation.Classes.Relation_From,To_ 'DiGi\.Core\.Relation\.Classes\.Relation\') ↳ [IBidirectionalRelation<X,Y>](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IBidirectionalRelation_X,Y_ 'DiGi\.Core\.Relation\.Interfaces\.IBidirectionalRelation\') ↳ [IDirectionalRelation<XUniqueObject,YUniqueObject>](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IDirectionalRelation_XUniqueObject,YUniqueObject_ 'DiGi\.Core\.Relation\.Interfaces\.IDirectionalRelation\') ↳ [IManyToManyRelation<XUniqueObject,YUniqueObject>](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IManyToManyRelation_XUniqueObject,YUniqueObject_ 'DiGi\.Core\.Relation\.Interfaces\.IManyToManyRelation\') ↳ [IManyToOneRelation<XUniqueObject,YUniqueObject>](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IManyToOneRelation_XUniqueObject,YUniqueObject_ 'DiGi\.Core\.Relation\.Interfaces\.IManyToOneRelation\') ↳ [IOneToManyRelation<XUniqueObject,YUniqueObject>](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IOneToManyRelation_XUniqueObject,YUniqueObject_ 'DiGi\.Core\.Relation\.Interfaces\.IOneToManyRelation\') ↳ [IOneToOneRelation<XUniqueObject,YUniqueObject>](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IOneToOneRelation_XUniqueObject,YUniqueObject_ 'DiGi\.Core\.Relation\.Interfaces\.IOneToOneRelation\') Implements [IRelation](DiGi.Core.Relation.Interfaces.md#DiGi.Core.Relation.Interfaces.IRelation 'DiGi\.Core\.Relation\.Interfaces\.IRelation'), [DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject'), [DiGi\.Core\.Interfaces\.ICloneableObject<](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1 'DiGi\.Core\.Interfaces\.ICloneableObject\`1')[DiGi\.Core\.Interfaces\.ISerializableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iserializableobject 'DiGi\.Core\.Interfaces\.ISerializableObject')[>](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject-1 'DiGi\.Core\.Interfaces\.ICloneableObject\`1'), [DiGi\.Core\.Interfaces\.ICloneableObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.icloneableobject 'DiGi\.Core\.Interfaces\.ICloneableObject'), [DiGi\.Core\.Interfaces\.IObject](https://learn.microsoft.com/en-us/dotnet/api/digi.core.interfaces.iobject 'DiGi\.Core\.Interfaces\.IObject')