Class Many<TChild>
Represents a one-to-many/many-to-many relationship between two Entities.
WARNING: You have to initialize all instances of this class before accessing any of it's members.
Initialize from the constructor of the parent entity as follows:
this.InitOneToMany(() => Property);
this.InitManyToMany(() => Property, x => x.OtherProperty);
Implements
Inherited Members
Namespace: MongoDB.Entities
Assembly: MongoDB.Entities.dll
Syntax
public sealed class Many<TChild> : ManyBase, IEnumerable<TChild>, IEnumerable where TChild : IEntity
Type Parameters
Name | Description |
---|---|
TChild | Type of the child IEntity. |
Constructors
Many()
Creates an instance of Many<TChild> This is only needed in VB.Net
Declaration
public Many()
Properties
JoinCollection
Gets the IMongoCollection of JoinRecords for this relationship.
TIP: Try never to use this unless really neccessary.
Declaration
public IMongoCollection<JoinRecord> JoinCollection { get; }
Property Value
Type | Description |
---|---|
IMongoCollection<JoinRecord> |
Methods
AddAsync(TChild, IClientSessionHandle, CancellationToken)
Adds a new child reference.
WARNING: Make sure to save the parent and child Entities before calling this method.
Declaration
public Task AddAsync(TChild child, IClientSessionHandle session = null, CancellationToken cancellation = default(CancellationToken))
Parameters
Type | Name | Description |
---|---|---|
TChild | child | The child Entity to add. |
IClientSessionHandle | session | An optional session if using within a transaction |
CancellationToken | cancellation | An optional cancellation token |
Returns
Type | Description |
---|---|
Task |
AddAsync(IEnumerable<TChild>, IClientSessionHandle, CancellationToken)
Adds multiple child references in a single bulk operation
WARNING: Make sure to save the parent and child Entities before calling this method.
Declaration
public Task AddAsync(IEnumerable<TChild> children, IClientSessionHandle session = null, CancellationToken cancellation = default(CancellationToken))
Parameters
Type | Name | Description |
---|---|---|
IEnumerable<TChild> | children | The child Entities to add |
IClientSessionHandle | session | An optional session if using within a transaction |
CancellationToken | cancellation | An optional cancellation token |
Returns
Type | Description |
---|---|
Task |
AddAsync(IEnumerable<String>, IClientSessionHandle, CancellationToken)
Adds multiple child references in a single bulk operation
WARNING: Make sure to save the parent and child Entities before calling this method.
Declaration
public Task AddAsync(IEnumerable<string> childIDs, IClientSessionHandle session = null, CancellationToken cancellation = default(CancellationToken))
Parameters
Type | Name | Description |
---|---|---|
IEnumerable<String> | childIDs | The IDs of the child Entities to add. |
IClientSessionHandle | session | An optional session if using within a transaction |
CancellationToken | cancellation | An optional cancellation token |
Returns
Type | Description |
---|---|
Task |
AddAsync(String, IClientSessionHandle, CancellationToken)
Adds a new child reference.
WARNING: Make sure to save the parent and child Entities before calling this method.
Declaration
public Task AddAsync(string childID, IClientSessionHandle session = null, CancellationToken cancellation = default(CancellationToken))
Parameters
Type | Name | Description |
---|---|---|
String | childID | The ID of the child Entity to add. |
IClientSessionHandle | session | An optional session if using within a transaction |
CancellationToken | cancellation | An optional cancellation token |
Returns
Type | Description |
---|---|
Task |
ChildrenCountAsync(IClientSessionHandle, CountOptions, CancellationToken)
Get the number of children for a relationship
Declaration
public Task<long> ChildrenCountAsync(IClientSessionHandle session = null, CountOptions options = null, CancellationToken cancellation = default(CancellationToken))
Parameters
Type | Name | Description |
---|---|---|
IClientSessionHandle | session | An optional session if using within a transaction |
CountOptions | options | An optional AggregateOptions object |
CancellationToken | cancellation | An optional cancellation token |
Returns
Type | Description |
---|---|
Task<Int64> |
ChildrenFluent(IClientSessionHandle, AggregateOptions)
An IAggregateFluent of child Entities for the parent.
Declaration
public IAggregateFluent<TChild> ChildrenFluent(IClientSessionHandle session = null, AggregateOptions options = null)
Parameters
Type | Name | Description |
---|---|---|
IClientSessionHandle | session | An optional session if using within a transaction |
AggregateOptions | options | An optional AggregateOptions object |
Returns
Type | Description |
---|---|
IAggregateFluent<TChild> |
ChildrenQueryable(IClientSessionHandle, AggregateOptions)
An IQueryable of child Entities for the parent.
Declaration
public IMongoQueryable<TChild> ChildrenQueryable(IClientSessionHandle session = null, AggregateOptions options = null)
Parameters
Type | Name | Description |
---|---|---|
IClientSessionHandle | session | An optional session if using within a transaction |
AggregateOptions | options | An optional AggregateOptions object |
Returns
Type | Description |
---|---|
IMongoQueryable<TChild> |
GetEnumerator()
Declaration
public IEnumerator<TChild> GetEnumerator()
Returns
Type | Description |
---|---|
IEnumerator<TChild> |
JoinFluent(IClientSessionHandle, AggregateOptions)
An IAggregateFluent of JoinRecords for this relationship
Declaration
public IAggregateFluent<JoinRecord> JoinFluent(IClientSessionHandle session = null, AggregateOptions options = null)
Parameters
Type | Name | Description |
---|---|---|
IClientSessionHandle | session | An optional session if using within a transaction |
AggregateOptions | options | An optional AggregateOptions object |
Returns
Type | Description |
---|---|
IAggregateFluent<JoinRecord> |
JoinQueryable(IClientSessionHandle, AggregateOptions)
An IQueryable of JoinRecords for this relationship
Declaration
public IMongoQueryable<JoinRecord> JoinQueryable(IClientSessionHandle session = null, AggregateOptions options = null)
Parameters
Type | Name | Description |
---|---|---|
IClientSessionHandle | session | An optional session if using within a transaction |
AggregateOptions | options | An optional AggregateOptions object |
Returns
Type | Description |
---|---|
IMongoQueryable<JoinRecord> |
ParentsFluent<TParent>(IAggregateFluent<TChild>)
Get an IAggregateFluent of parents matching a supplied IAggregateFluent of children for this relationship.
Declaration
public IAggregateFluent<TParent> ParentsFluent<TParent>(IAggregateFluent<TChild> children)
where TParent : IEntity
Parameters
Type | Name | Description |
---|---|---|
IAggregateFluent<TChild> | children | An IAggregateFluent of children |
Returns
Type | Description |
---|---|
IAggregateFluent<TParent> |
Type Parameters
Name | Description |
---|---|
TParent | The type of the parent IEntity |
ParentsFluent<TParent>(IEnumerable<String>, IClientSessionHandle, AggregateOptions)
Get an IAggregateFluent of parents matching multiple child IDs for this relationship.
Declaration
public IAggregateFluent<TParent> ParentsFluent<TParent>(IEnumerable<string> childIDs, IClientSessionHandle session = null, AggregateOptions options = null)
where TParent : IEntity
Parameters
Type | Name | Description |
---|---|---|
IEnumerable<String> | childIDs | An IEnumerable of child IDs |
IClientSessionHandle | session | An optional session if using within a transaction |
AggregateOptions | options | An optional AggregateOptions object |
Returns
Type | Description |
---|---|
IAggregateFluent<TParent> |
Type Parameters
Name | Description |
---|---|
TParent | The type of the parent IEntity |
ParentsFluent<TParent>(String, IClientSessionHandle, AggregateOptions)
Get an IAggregateFluent of parents matching a single child ID for this relationship.
Declaration
public IAggregateFluent<TParent> ParentsFluent<TParent>(string childID, IClientSessionHandle session = null, AggregateOptions options = null)
where TParent : IEntity
Parameters
Type | Name | Description |
---|---|---|
String | childID | An child ID |
IClientSessionHandle | session | An optional session if using within a transaction |
AggregateOptions | options | An optional AggregateOptions object |
Returns
Type | Description |
---|---|
IAggregateFluent<TParent> |
Type Parameters
Name | Description |
---|---|
TParent | The type of the parent IEntity |
ParentsQueryable<TParent>(IMongoQueryable<TChild>, IClientSessionHandle, AggregateOptions)
Get an IQueryable of parents matching a supplied IQueryable of children for this relationship.
Declaration
[Obsolete("This method is no longer supported due to incompatibilities with LINQ3 translation engine!", true)]
public IMongoQueryable<TParent> ParentsQueryable<TParent>(IMongoQueryable<TChild> children, IClientSessionHandle session = null, AggregateOptions options = null)
where TParent : IEntity
Parameters
Type | Name | Description |
---|---|---|
IMongoQueryable<TChild> | children | An IQueryable of children |
IClientSessionHandle | session | An optional session if using within a transaction |
AggregateOptions | options | An optional AggregateOptions object |
Returns
Type | Description |
---|---|
IMongoQueryable<TParent> |
Type Parameters
Name | Description |
---|---|
TParent | The type of the parent IEntity |
ParentsQueryable<TParent>(IEnumerable<String>, IClientSessionHandle, AggregateOptions)
Get an IQueryable of parents matching multiple child IDs for this relationship.
Declaration
public IMongoQueryable<TParent> ParentsQueryable<TParent>(IEnumerable<string> childIDs, IClientSessionHandle session = null, AggregateOptions options = null)
where TParent : IEntity
Parameters
Type | Name | Description |
---|---|---|
IEnumerable<String> | childIDs | An IEnumerable of child IDs |
IClientSessionHandle | session | An optional session if using within a transaction |
AggregateOptions | options | An optional AggregateOptions object |
Returns
Type | Description |
---|---|
IMongoQueryable<TParent> |
Type Parameters
Name | Description |
---|---|
TParent | The type of the parent IEntity |
ParentsQueryable<TParent>(String, IClientSessionHandle, AggregateOptions)
Get an IQueryable of parents matching a single child ID for this relationship.
Declaration
public IMongoQueryable<TParent> ParentsQueryable<TParent>(string childID, IClientSessionHandle session = null, AggregateOptions options = null)
where TParent : IEntity
Parameters
Type | Name | Description |
---|---|---|
String | childID | A child ID |
IClientSessionHandle | session | An optional session if using within a transaction |
AggregateOptions | options | An optional AggregateOptions object |
Returns
Type | Description |
---|---|
IMongoQueryable<TParent> |
Type Parameters
Name | Description |
---|---|
TParent | The type of the parent IEntity |
RemoveAsync(TChild, IClientSessionHandle, CancellationToken)
Removes a child reference.
Declaration
public Task RemoveAsync(TChild child, IClientSessionHandle session = null, CancellationToken cancellation = default(CancellationToken))
Parameters
Type | Name | Description |
---|---|---|
TChild | child | The child IEntity to remove the reference of. |
IClientSessionHandle | session | An optional session if using within a transaction |
CancellationToken | cancellation | An optional cancellation token |
Returns
Type | Description |
---|---|
Task |
RemoveAsync(IEnumerable<TChild>, IClientSessionHandle, CancellationToken)
Removes child references.
Declaration
public Task RemoveAsync(IEnumerable<TChild> children, IClientSessionHandle session = null, CancellationToken cancellation = default(CancellationToken))
Parameters
Type | Name | Description |
---|---|---|
IEnumerable<TChild> | children | The child Entities to remove the references of. |
IClientSessionHandle | session | An optional session if using within a transaction |
CancellationToken | cancellation | An optional cancellation token |
Returns
Type | Description |
---|---|
Task |
RemoveAsync(IEnumerable<String>, IClientSessionHandle, CancellationToken)
Removes child references.
Declaration
public Task RemoveAsync(IEnumerable<string> childIDs, IClientSessionHandle session = null, CancellationToken cancellation = default(CancellationToken))
Parameters
Type | Name | Description |
---|---|---|
IEnumerable<String> | childIDs | The IDs of the child Entities to remove the references of |
IClientSessionHandle | session | An optional session if using within a transaction |
CancellationToken | cancellation | An optional cancellation token |
Returns
Type | Description |
---|---|
Task |
RemoveAsync(String, IClientSessionHandle, CancellationToken)
Removes a child reference.
Declaration
public Task RemoveAsync(string childID, IClientSessionHandle session = null, CancellationToken cancellation = default(CancellationToken))
Parameters
Type | Name | Description |
---|---|---|
String | childID | The ID of the child Entity to remove the reference of. |
IClientSessionHandle | session | An optional session if using within a transaction |
CancellationToken | cancellation | An optional cancellation token |
Returns
Type | Description |
---|---|
Task |
VB_InitManyToMany<TParent>(TParent, Expression<Func<TParent, Object>>, Expression<Func<TChild, Object>>, Boolean)
Use this method to initialize the Many<TChild> properties with VB.Net
Declaration
public void VB_InitManyToMany<TParent>(TParent parent, Expression<Func<TParent, object>> propertyParent, Expression<Func<TChild, object>> propertyChild, bool isInverse)
where TParent : IEntity
Parameters
Type | Name | Description |
---|---|---|
TParent | parent | The parent entity instance |
Expression<Func<TParent, Object>> | propertyParent | Function(x) x.ParentProp |
Expression<Func<TChild, Object>> | propertyChild | Function(x) x.ChildProp |
Boolean | isInverse | Specify if this is the inverse side of the relationship or not |
Type Parameters
Name | Description |
---|---|
TParent | The type of the parent |
VB_InitOneToMany<TParent>(TParent, Expression<Func<TParent, Object>>)
Use this method to initialize the Many<TChild> properties with VB.Net
Declaration
public void VB_InitOneToMany<TParent>(TParent parent, Expression<Func<TParent, object>> property)
where TParent : IEntity
Parameters
Type | Name | Description |
---|---|---|
TParent | parent | The parent entity instance |
Expression<Func<TParent, Object>> | property | Function(x) x.PropName |
Type Parameters
Name | Description |
---|---|
TParent | The type of the parent |
Explicit Interface Implementations
IEnumerable.GetEnumerator()
Declaration
IEnumerator IEnumerable.GetEnumerator()
Returns
Type | Description |
---|---|
IEnumerator |