本文整理汇总了C#中System.Data.Entity.Core.Metadata.Edm.AssociationType.SetReadOnly方法的典型用法代码示例。如果您正苦于以下问题:C# AssociationType.SetReadOnly方法的具体用法?C# AssociationType.SetReadOnly怎么用?C# AssociationType.SetReadOnly使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Data.Entity.Core.Metadata.Edm.AssociationType
的用法示例。
在下文中一共展示了AssociationType.SetReadOnly方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Create_should_return_only_fk_associations
public void Create_should_return_only_fk_associations()
{
var filter = new ViewgenContext.OneToOneFkAssociationsForEntitiesFilter();
var associationType1
= new AssociationType("A1", EdmConstants.TransientNamespace, true, DataSpace.CSpace);
var entityType = new EntityType("E", "N", DataSpace.CSpace);
associationType1.AddMember(
new AssociationEndMember("S", entityType)
{
RelationshipMultiplicity = RelationshipMultiplicity.One
});
associationType1.AddMember(
new AssociationEndMember("T", entityType)
{
RelationshipMultiplicity = RelationshipMultiplicity.One
});
associationType1.SetReadOnly();
var associationSet1 = new AssociationSet("AS1", associationType1);
var associationType2
= new AssociationType("A2", EdmConstants.TransientNamespace, false, DataSpace.CSpace);
associationType2.AddMember(
new AssociationEndMember("S", entityType)
{
RelationshipMultiplicity = RelationshipMultiplicity.One
});
associationType2.AddMember(
new AssociationEndMember("T", entityType)
{
RelationshipMultiplicity = RelationshipMultiplicity.One
});
associationType2.SetReadOnly();
var associationSet2 = new AssociationSet("AS2", associationType2);
var query
= filter.Filter(
new[] { entityType },
new[] { associationSet1, associationSet2 });
Assert.Same(associationSet1, query.Single());
}
示例2: AssociationEndMembers_returns_correct_ends_after_modifying_SourceEnd
public void AssociationEndMembers_returns_correct_ends_after_modifying_SourceEnd()
{
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 newSource = new AssociationEndMember("S1", new EntityType("E", "N", DataSpace.CSpace));
associationType.SourceEnd = newSource;
associationType.SetReadOnly();
Assert.Same(associationType.SourceEnd, newSource);
Assert.Same(associationType.AssociationEndMembers[0], newSource);
}
示例3: TranslateColumnMap_returns_correct_columntypes_and_nullablecolumns_for_associations
public void TranslateColumnMap_returns_correct_columntypes_and_nullablecolumns_for_associations()
{
var metadataWorkspaceMock = new Mock<MetadataWorkspace>();
metadataWorkspaceMock.Setup(m => m.GetQueryCacheManager()).Returns(QueryCacheManager.Create());
var codeFirstOSpaceTypeFactory = new CodeFirstOSpaceTypeFactory();
var refEntityColumnMap = (EntityColumnMap)BuildSimpleEntitySetColumnMap(metadataWorkspaceMock, codeFirstOSpaceTypeFactory).Element;
var cSpaceEntityType = new EntityType(typeof(RefEntity).Name, "N", DataSpace.CSpace);
cSpaceEntityType.AddMember(new EdmProperty("Id", TypeUsage.Create(PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.Int32))));
var navigationProperty = new NavigationProperty("SimpleEntity", TypeUsage.Create(refEntityColumnMap.Type.EdmType));
var associationType = new AssociationType("A", "N", false, DataSpace.CSpace);
associationType.AddMember(
new AssociationEndMember("From", new RefType(cSpaceEntityType), RelationshipMultiplicity.One));
associationType.AddMember(
new AssociationEndMember("To", new RefType((EntityType)navigationProperty.TypeUsage.EdmType), RelationshipMultiplicity.One));
associationType.SetReadOnly();
navigationProperty.RelationshipType = associationType;
navigationProperty.FromEndMember = associationType.RelationshipEndMembers[0];
navigationProperty.ToEndMember = associationType.RelationshipEndMembers[1];
cSpaceEntityType.AddMember(navigationProperty);
var entityTypeUsage = TypeUsage.Create(cSpaceEntityType);
var oSpaceEntityType = codeFirstOSpaceTypeFactory.TryCreateType(typeof(RefEntity), cSpaceEntityType);
codeFirstOSpaceTypeFactory.CspaceToOspace.Add(cSpaceEntityType, oSpaceEntityType);
var associations = new EdmItemCollection();
associations.AddInternal(associationType);
codeFirstOSpaceTypeFactory.CreateRelationships(associations);
foreach (var resolve in codeFirstOSpaceTypeFactory.ReferenceResolutions)
{
resolve();
}
var idScalarMap = new ScalarColumnMap(TypeUsage.Create(PrimitiveType.GetEdmPrimitiveType(PrimitiveTypeKind.Int32)), "Id", 0, 1);
var refColumnMap = new RefColumnMap(
associationType.RelationshipEndMembers[1].TypeUsage, "E",
new SimpleEntityIdentity(null, new SimpleColumnMap[] { idScalarMap }));
var collectionMap = new SimpleCollectionColumnMap(
entityTypeUsage, "MockCollectionType", refColumnMap, null, null);
metadataWorkspaceMock.Setup(m => m.GetItem<EdmType>("N.RefEntity", DataSpace.OSpace))
.Returns(oSpaceEntityType);
var factory =
new Translator().TranslateColumnMap<object>(
collectionMap, metadataWorkspaceMock.Object, new SpanIndex(), MergeOption.NoTracking, streaming: false, valueLayer: false);
Assert.NotNull(factory);
Assert.Equal(new[] { null, typeof(int) }, factory.ColumnTypes);
Assert.Equal(new[] { false, true }, factory.NullableColumns);
}
示例4: Create
/// <summary>
/// Creates a read-only AssociationType instance from the specified parameters.
/// </summary>
/// <param name="name">The name of the association type.</param>
/// <param name="namespaceName">The namespace of the association type.</param>
/// <param name="foreignKey">Flag that indicates a foreign key (FK) relationship.</param>
/// <param name="dataSpace">The data space for the association type.</param>
/// <param name="sourceEnd">The source association end member.</param>
/// <param name="targetEnd">The target association end member.</param>
/// <param name="constraint">A referential constraint.</param>
/// <param name="metadataProperties">Metadata properties to be associated with the instance.</param>
/// <returns>The newly created AssociationType instance.</returns>
/// <exception cref="System.ArgumentException">The specified name is null or empty.</exception>
/// <exception cref="System.ArgumentException">The specified namespace is null or empty.</exception>
public static AssociationType Create(
string name,
string namespaceName,
bool foreignKey,
DataSpace dataSpace,
AssociationEndMember sourceEnd,
AssociationEndMember targetEnd,
ReferentialConstraint constraint,
IEnumerable<MetadataProperty> metadataProperties)
{
Check.NotEmpty(name, "name");
Check.NotEmpty(namespaceName, "namespaceName");
var instance = new AssociationType(name, namespaceName, foreignKey, dataSpace);
if (sourceEnd != null)
{
instance.SourceEnd = sourceEnd;
}
if (targetEnd != null)
{
instance.TargetEnd = targetEnd;
}
if (constraint != null)
{
instance.AddReferentialConstraint(constraint);
}
if (metadataProperties != null)
{
instance.AddMetadataProperties(metadataProperties.ToList());
}
instance.SetReadOnly();
return instance;
}