本文整理汇总了C#中System.Data.Entity.Core.Metadata.Edm.EdmItemCollection.AddInternal方法的典型用法代码示例。如果您正苦于以下问题:C# EdmItemCollection.AddInternal方法的具体用法?C# EdmItemCollection.AddInternal怎么用?C# EdmItemCollection.AddInternal使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Data.Entity.Core.Metadata.Edm.EdmItemCollection
的用法示例。
在下文中一共展示了EdmItemCollection.AddInternal方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: 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);
}