本文整理汇总了C#中System.Data.Entity.Core.Metadata.Edm.AssociationSet类的典型用法代码示例。如果您正苦于以下问题:C# AssociationSet类的具体用法?C# AssociationSet怎么用?C# AssociationSet使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
AssociationSet类属于System.Data.Entity.Core.Metadata.Edm命名空间,在下文中一共展示了AssociationSet类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Can_get_and_set_ends_via_wrapper_properties
public void Can_get_and_set_ends_via_wrapper_properties()
{
var associationType
= new AssociationType("A", XmlConstants.ModelNamespace_3, false, DataSpace.CSpace)
{
SourceEnd = new AssociationEndMember("S", new EntityType("E", "N", DataSpace.CSpace)),
TargetEnd = new AssociationEndMember("T", new EntityType("E", "N", DataSpace.CSpace))
};
var associationSet = new AssociationSet("A", associationType);
Assert.Null(associationSet.SourceSet);
Assert.Null(associationSet.TargetSet);
var sourceEntitySet = new EntitySet();
associationSet.SourceSet = sourceEntitySet;
var targetEntitySet = new EntitySet();
associationSet.TargetSet = targetEntitySet;
Assert.Same(sourceEntitySet, associationSet.SourceSet);
Assert.Same(targetEntitySet, associationSet.TargetSet);
}
示例2: AssociationSetMetadata
/// <summary>
/// Initialize Metadata for an AssociationSet
/// </summary>
internal AssociationSetMetadata(Set<EntitySet> affectedTables, AssociationSet associationSet, MetadataWorkspace workspace)
{
// If there is only 1 table, there can be no ambiguity about the "destination" of a relationship, so such
// sets are not typically required.
var isRequired = 1 < affectedTables.Count;
// determine the ends of the relationship
var ends = associationSet.AssociationSetEnds;
// find collocated entities
foreach (var table in affectedTables)
{
// Find extents influencing the table
var influencingExtents = MetadataHelper.GetInfluencingEntitySetsForTable(table, workspace);
foreach (var influencingExtent in influencingExtents)
{
foreach (var end in ends)
{
// If the extent is an end of the relationship and we haven't already added it to the
// required set...
if (end.EntitySet.EdmEquals(influencingExtent))
{
if (isRequired)
{
AddEnd(ref RequiredEnds, end.CorrespondingAssociationEndMember);
}
else if (null == RequiredEnds
|| !RequiredEnds.Contains(end.CorrespondingAssociationEndMember))
{
AddEnd(ref OptionalEnds, end.CorrespondingAssociationEndMember);
}
}
}
}
}
// fix Required and Optional sets
FixSet(ref RequiredEnds);
FixSet(ref OptionalEnds);
// for associations with referential constraints, the principal end is always interesting
// since its key values may take precedence over the key values of the dependent end
foreach (var constraint in associationSet.ElementType.ReferentialConstraints)
{
// FromRole is the principal end in the referential constraint
var principalEnd = (AssociationEndMember)constraint.FromRole;
if (!RequiredEnds.Contains(principalEnd)
&&
!OptionalEnds.Contains(principalEnd))
{
AddEnd(ref IncludedValueEnds, principalEnd);
}
}
FixSet(ref IncludedValueEnds);
}
示例3: Visit
protected virtual void Visit(AssociationSet associationSet)
{
Visit(associationSet.ElementType);
Visit(associationSet.EntityContainer);
foreach (var end in associationSet.AssociationSetEnds)
{
Visit(end);
}
}
示例4: Can_get_association_set
public void Can_get_association_set()
{
var entitySet = new EntitySet();
var associationSet = new AssociationSet("AS", new AssociationType());
var associationSetMapping
= new StorageAssociationSetMapping(associationSet, entitySet);
Assert.Same(associationSet, associationSetMapping.AssociationSet);
}
示例5: Can_get_association_set
public void Can_get_association_set()
{
var entitySet = new EntitySet();
var associationSet = new AssociationSet("AS", new AssociationType("A", XmlConstants.ModelNamespace_3, false, DataSpace.CSpace));
var associationSetMapping
= new StorageAssociationSetMapping(associationSet, entitySet);
Assert.Same(associationSet, associationSetMapping.AssociationSet);
}
示例6: Can_get_table
public void Can_get_table()
{
var entityType = new EntityType();
var entitySet = new EntitySet("ES", null, null, null, entityType);
var associationSet = new AssociationSet("AS", new AssociationType());
var associationSetMapping
= new StorageAssociationSetMapping(associationSet, entitySet);
Assert.Same(entityType, associationSetMapping.Table);
}
示例7: StorageAssociationSetModificationFunctionMapping
internal StorageAssociationSetModificationFunctionMapping(
AssociationSet associationSet,
StorageModificationFunctionMapping deleteFunctionMapping,
StorageModificationFunctionMapping insertFunctionMapping)
{
Contract.Requires(associationSet != null);
AssociationSet = associationSet;
DeleteFunctionMapping = deleteFunctionMapping;
InsertFunctionMapping = insertFunctionMapping;
}
开发者ID:WangWilliam,项目名称:EntityFramework5,代码行数:11,代码来源:StorageAssociationSetModificationFunctionMapping.cs
示例8: AssociationSetModificationFunctionMapping
/// <summary>
/// Initalizes a new AssociationSetModificationFunctionMapping instance.
/// </summary>
/// <param name="associationSet">An association set.</param>
/// <param name="deleteFunctionMapping">A delete function mapping.</param>
/// <param name="insertFunctionMapping">An insert function mapping.</param>
public AssociationSetModificationFunctionMapping(
AssociationSet associationSet,
ModificationFunctionMapping deleteFunctionMapping,
ModificationFunctionMapping insertFunctionMapping)
{
Check.NotNull(associationSet, "associationSet");
_associationSet = associationSet;
_deleteFunctionMapping = deleteFunctionMapping;
_insertFunctionMapping = insertFunctionMapping;
}
示例9: StorageAssociationSetModificationFunctionMapping
internal StorageAssociationSetModificationFunctionMapping(
AssociationSet associationSet,
StorageModificationFunctionMapping deleteFunctionMapping,
StorageModificationFunctionMapping insertFunctionMapping)
{
DebugCheck.NotNull(associationSet);
AssociationSet = associationSet;
DeleteFunctionMapping = deleteFunctionMapping;
InsertFunctionMapping = insertFunctionMapping;
}
开发者ID:christiandpena,项目名称:entityframework,代码行数:11,代码来源:StorageAssociationSetModificationFunctionMapping.cs
示例10: AssociationSetMapping
/// <summary>
/// Initializes a new AssociationSetMapping instance.
/// </summary>
/// <param name="associationSet">The association set to be mapped.</param>
/// <param name="storeEntitySet">The store entity set to be mapped.</param>
/// <param name="containerMapping">The parent container mapping.</param>
public AssociationSetMapping(AssociationSet associationSet, EntitySet storeEntitySet, EntityContainerMapping containerMapping)
: base(containerMapping)
{
Check.NotNull(associationSet, "associationSet");
Check.NotNull(storeEntitySet, "storeEntitySet");
_associationSet = associationSet;
_associationTypeMapping = new AssociationTypeMapping(associationSet.ElementType, this);
_associationTypeMapping.MappingFragment
= new MappingFragment(storeEntitySet, _associationTypeMapping, false);
}
示例11: Can_get_table
public void Can_get_table()
{
var entityType = new EntityType("E", "N", DataSpace.CSpace);
var entitySet = new EntitySet("ES", null, null, null, entityType);
var associationSet = new AssociationSet("AS", new AssociationType("A", XmlConstants.ModelNamespace_3, false, DataSpace.CSpace));
var associationSetMapping
= new StorageAssociationSetMapping(associationSet, entitySet);
Assert.Same(entityType, associationSetMapping.Table);
}
示例12: Cannot_create_with_null_argument
public void Cannot_create_with_null_argument()
{
var associationType = new AssociationType("AT", "N", false, DataSpace.CSpace);
var associationSet = new AssociationSet("AS", associationType);
Assert.Equal(
"members",
Assert.Throws<ArgumentNullException>(
() => new ModificationFunctionMemberPath(
null, associationSet)).ParamName);
}
示例13: GetStorageAssociationSetNameFromManyToMany
// <summary>
// A name derived from a *:* association will be: FK_[Association Name]_[End Name]. Note that we are
// getting the association name for *one* of the SSDL associations that are inferred from a CSDL *:*
// association. The 'principalEnd' corresponds to the end of the *:* association that will become
// the principal end in the 1:* association (where the * end is the newly-constructed entity corresponding
// to the link table)
// </summary>
internal static string GetStorageAssociationSetNameFromManyToMany(AssociationSet associationSet, AssociationEndMember principalEnd)
{
Debug.Assert(associationSet != null, "AssociationSet should not be null");
Debug.Assert(principalEnd != null, "The principal end cannot be null");
var associationSetName = String.Empty;
if (associationSet != null
&& principalEnd != null)
{
associationSetName = String.Format(
CultureInfo.CurrentCulture, Resources.CodeViewManyToManyAssocName, associationSet.Name, principalEnd.Name);
}
return associationSetName;
}
示例14: ModificationFunctionMemberPath
/// <summary>
/// Initializes a new ModificationFunctionMemberPath instance.
/// </summary>
/// <param name="members">Gets the members in the path from the leaf (the member being bound)
/// to the root of the structure.</param>
/// <param name="associationSet">Gets the association set to which we are navigating
/// via this member. If the value is null, this is not a navigation member path.</param>
public ModificationFunctionMemberPath(IEnumerable<EdmMember> members, AssociationSet associationSet)
{
Check.NotNull(members, "members");
_members = new ReadOnlyCollection<EdmMember>(new List<EdmMember>(members));
if (null != associationSet)
{
Debug.Assert(2 == Members.Count, "Association bindings must always consist of the end and the key");
// find the association set end
_associationSetEnd = associationSet.AssociationSetEnds[Members[1].Name];
}
}
示例15: StorageModificationFunctionMemberPath
internal StorageModificationFunctionMemberPath(IEnumerable<EdmMember> members, AssociationSet associationSetNavigation)
{
Contract.Requires(members != null);
Members = new ReadOnlyCollection<EdmMember>(new List<EdmMember>(members));
if (null != associationSetNavigation)
{
Debug.Assert(2 == Members.Count, "Association bindings must always consist of the end and the key");
// find the association set end
AssociationSetEnd = associationSetNavigation.AssociationSetEnds[Members[1].Name];
}
}