You've already forked linux-packaging-mono
Imported Upstream version 4.6.0.125
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
This commit is contained in:
parent
a569aebcfd
commit
e79aa3c0ed
@ -0,0 +1,164 @@
|
||||
//---------------------------------------------------------------------
|
||||
// <copyright file="IRelatedEnd.cs" company="Microsoft">
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
// </copyright>
|
||||
//
|
||||
// @owner mirszy
|
||||
// @backupOwner sparra
|
||||
//---------------------------------------------------------------------
|
||||
using System.Data;
|
||||
using System.Data.Common;
|
||||
using System.Data.Common.CommandTrees;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Data.Metadata.Edm;
|
||||
|
||||
namespace System.Data.Objects.DataClasses
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents one end of a relationship.
|
||||
/// </summary>
|
||||
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix")]
|
||||
public interface IRelatedEnd
|
||||
{
|
||||
// ----------
|
||||
// Properties
|
||||
// ----------
|
||||
|
||||
/// <summary>
|
||||
/// IsLoaded returns true if and only if Load was called.
|
||||
/// </summary>
|
||||
bool IsLoaded { get;}
|
||||
|
||||
/// <summary>
|
||||
/// Name of the relationship in which this IRelatedEnd is participating
|
||||
/// </summary>
|
||||
string RelationshipName { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Name of the relationship source role used to generate this IRelatedEnd
|
||||
/// </summary>
|
||||
string SourceRoleName { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Name of the relationship target role used to generate this IRelatedEnd
|
||||
/// </summary>
|
||||
string TargetRoleName { get; }
|
||||
|
||||
/// <summary>
|
||||
/// The relationship metadata cooresponding to this IRelatedEnd
|
||||
/// </summary>
|
||||
RelationshipSet RelationshipSet { get; }
|
||||
|
||||
// -------
|
||||
// Methods
|
||||
// -------
|
||||
|
||||
/// <summary>
|
||||
/// Loads the related entity or entities into the related end using the default merge option
|
||||
/// </summary>
|
||||
void Load();
|
||||
|
||||
/// <summary>
|
||||
/// Loads the related entity or entities into the related end using the specified merge option
|
||||
/// </summary>
|
||||
void Load(MergeOption mergeOption);
|
||||
|
||||
/// <summary>
|
||||
/// Adds an entity to the related end. If the owner is
|
||||
/// attached to a cache then the all the connected ends are
|
||||
/// added to the object cache and their corresponding relationships
|
||||
/// are also added to the ObjectStateManager. The RelatedEnd of the
|
||||
/// relationship is also fixed.
|
||||
/// </summary>
|
||||
/// <param name="entity">
|
||||
/// Entity instance to add to the related end
|
||||
/// </param>
|
||||
void Add(IEntityWithRelationships entity);
|
||||
|
||||
/// <summary>
|
||||
/// Adds an entity to the related end. If the owner is
|
||||
/// attached to a cache then the all the connected ends are
|
||||
/// added to the object cache and their corresponding relationships
|
||||
/// are also added to the ObjectStateManager. The RelatedEnd of the
|
||||
/// relationship is also fixed.
|
||||
///
|
||||
/// This overload is meant to be used by classes that do not implement IEntityWithRelationships.
|
||||
/// </summary>
|
||||
/// <param name="entity">
|
||||
/// Entity instance to add to the related end
|
||||
/// </param>
|
||||
void Add(object entity);
|
||||
|
||||
/// <summary>
|
||||
/// Removes an entity from the related end. If owner is
|
||||
/// attached to a cache, marks relationship for deletion and if
|
||||
/// the relationship is composition also marks the entity for deletion.
|
||||
/// </summary>
|
||||
/// <param name="entity">
|
||||
/// Entity instance to remove from the related end
|
||||
/// </param>
|
||||
/// <returns>Returns true if the entity was successfully removed, false if the entity was not part of the IRelatedEnd.</returns>
|
||||
bool Remove(IEntityWithRelationships entity);
|
||||
|
||||
/// <summary>
|
||||
/// Removes an entity from the related end. If owner is
|
||||
/// attached to a cache, marks relationship for deletion and if
|
||||
/// the relationship is composition also marks the entity for deletion.
|
||||
///
|
||||
/// This overload is meant to be used by classes that do not implement IEntityWithRelationships.
|
||||
/// </summary>
|
||||
/// <param name="entity">
|
||||
/// Entity instance to remove from the related end
|
||||
/// </param>
|
||||
/// <returns>Returns true if the entity was successfully removed, false if the entity was not part of the IRelatedEnd.</returns>
|
||||
bool Remove(object entity);
|
||||
|
||||
/// <summary>
|
||||
/// Attaches an entity to the related end. If the related end is already filled
|
||||
/// or partially filled, this merges the existing entities with the given entity. The given
|
||||
/// entity is not assumed to be the complete set of related entities.
|
||||
///
|
||||
/// Owner and all entities passed in must be in Unchanged or Modified state.
|
||||
/// Deleted elements are allowed only when the state manager is already tracking the relationship
|
||||
/// instance.
|
||||
/// </summary>
|
||||
/// <param name="entity">The entity to attach to the related end</param>
|
||||
/// <exception cref="ArgumentNullException">Thrown when <paramref name="entity"/> is null.</exception>
|
||||
/// <exception cref="InvalidOperationException">Thrown when the entity cannot be related via the current relationship end.</exception>
|
||||
void Attach(IEntityWithRelationships entity);
|
||||
|
||||
/// <summary>
|
||||
/// Attaches an entity to the related end. If the related end is already filled
|
||||
/// or partially filled, this merges the existing entities with the given entity. The given
|
||||
/// entity is not assumed to be the complete set of related entities.
|
||||
///
|
||||
/// Owner and all entities passed in must be in Unchanged or Modified state.
|
||||
/// Deleted elements are allowed only when the state manager is already tracking the relationship
|
||||
/// instance.
|
||||
///
|
||||
/// This overload is meant to be used by classes that do not implement IEntityWithRelationships.
|
||||
/// </summary>
|
||||
/// <param name="entity">The entity to attach to the related end</param>
|
||||
/// <exception cref="ArgumentNullException">Thrown when <paramref name="entity"/> is null.</exception>
|
||||
/// <exception cref="InvalidOperationException">Thrown when the entity cannot be related via the current relationship end.</exception>
|
||||
void Attach(object entity);
|
||||
|
||||
/// <summary>
|
||||
/// This is the query which represents the source of the
|
||||
/// related end. It is constructed on demand using the
|
||||
/// _connection and _cache fields and a query string based on
|
||||
/// the type of relationship end and the metadata passed into its
|
||||
/// constructor.
|
||||
/// </summary>
|
||||
IEnumerable CreateSourceQuery();
|
||||
|
||||
/// <summary>
|
||||
/// Returns an enumerator of all of the values contained within this related end
|
||||
/// </summary>
|
||||
IEnumerator GetEnumerator();
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user