Пример #1
0
        public void GetEdmModel_WorksOnModelBuilder_ForDerivedEntityType()
        {
            // Arrange
            ODataModelBuilder builder = new ODataModelBuilder();

            builder.EntityType <EntityTypeWithAnnotation>()
            .HasKey(p => p.Id)
            .HasInstanceAnnotations(p => p.InstanceAnnotations);

            builder.EntityType <DerivedEntityTypeWithAnnotation>().DerivesFrom <EntityTypeWithAnnotation>();

            // Act
            IEdmModel model = builder.GetEdmModel();

            // Assert
            Assert.NotNull(model);
            IEdmEntityType baseEntityType =
                Assert.Single(model.SchemaElements.OfType <IEdmEntityType>().Where(c => c.Name == "EntityTypeWithAnnotation"));

            Assert.Single(baseEntityType.Properties());

            IEdmEntityType derivedEntityType =
                Assert.Single(model.SchemaElements.OfType <IEdmEntityType>().Where(c => c.Name == "DerivedEntityTypeWithAnnotation"));

            InstanceAnnotationContainerAnnotation basePropertyAnnotation =
                model.GetAnnotationValue <InstanceAnnotationContainerAnnotation>(baseEntityType);

            Assert.Equal("InstanceAnnotations", basePropertyAnnotation.PropertyInfo.Name);

            InstanceAnnotationContainerAnnotation derivedPropertyAnnotation =
                model.GetAnnotationValue <InstanceAnnotationContainerAnnotation>(derivedEntityType);

            Assert.Null(derivedPropertyAnnotation);
        }
Пример #2
0
        public void GetEdmModel_WorksOnModelBuilder_ForEntityType_InstanceAnnotation(bool setInstanceAnnotationContainer)
        {
            // Arrange
            ODataModelBuilder builder = new ODataModelBuilder();
            var entity = builder.EntityType <EntityTypeWithAnnotation>().HasKey(p => p.Id);

            if (setInstanceAnnotationContainer)
            {
                entity.HasInstanceAnnotations(p => p.InstanceAnnotations);
            }

            // Act
            IEdmModel model = builder.GetEdmModel();

            // Assert
            Assert.NotNull(model);
            IEdmEntityType entityType =
                Assert.Single(model.SchemaElements.OfType <IEdmEntityType>().Where(c => c.Name == "EntityTypeWithAnnotation"));

            Assert.Single(entityType.Properties());

            InstanceAnnotationContainerAnnotation instanceAnnoteDict =
                model.GetAnnotationValue <InstanceAnnotationContainerAnnotation>(entityType);

            if (setInstanceAnnotationContainer)
            {
                Assert.Equal("InstanceAnnotations", instanceAnnoteDict.PropertyInfo.Name);
            }
            else
            {
                Assert.Null(instanceAnnoteDict);
            }
        }