public static IEdmModel InterfaceCriticalPropertyValueMustNotBeNullUsingEntitySetNullNavigationSetModel()
        {
            var model = new EdmModel();

            var entity   = new EdmEntityType("NS", "Entity");
            var entityId = entity.AddStructuralProperty("Id", EdmPrimitiveTypeKind.Int32);

            entity.AddKeys(entityId);
            var nav = entity.AddUnidirectionalNavigation(new EdmNavigationPropertyInfo()
            {
                Name = "Nav", Target = entity, TargetMultiplicity = EdmMultiplicity.One
            });

            model.AddElement(entity);

            var entityContainer = new EdmEntityContainer("NS", "Container");

            model.AddElement(entityContainer);

            var badSet = new CustomEntitySet(entityContainer, "BadSet", entity);

            badSet.AddNavigationTarget(nav, null);
            entityContainer.AddElement(badSet);

            return(model);
        }
        public static IEdmModel InterfaceCriticalPropertyValueMustNotBeNullUsingEntitySetNullNavigationModel()
        {
            var model = new EdmModel();

            var entity   = new EdmEntityType("NS", "Entity");
            var entityId = entity.AddStructuralProperty("Id", EdmPrimitiveTypeKind.Int32);

            entity.AddKeys(entityId);
            model.AddElement(entity);

            var entityContainer = new EdmEntityContainer("NS", "Container");

            model.AddElement(entityContainer);

            var goodSet = new EdmEntitySet(entityContainer, "GoodSet", entity);

            entityContainer.AddElement(goodSet);

            var badSet = new CustomEntitySet(entityContainer, "BadSet", entity);

            badSet.AddNavigationTarget(null, goodSet);
            entityContainer.AddElement(badSet);

            return(model);
        }
        public static IEdmModel InterfaceCriticalPropertyValueMustNotBeNullUsingEntitySetElementTypeModel()
        {
            var model = new EdmModel();

            var entityContainer = new EdmEntityContainer("NS", "Container");

            model.AddElement(entityContainer);

            var badSet = new CustomEntitySet(entityContainer, "Set", null);

            entityContainer.AddElement(badSet);

            return(model);
        }
        public static IEdmModel InterfaceCriticalPropertyValueMustNotBeNullUsingEntitySetNullNavigationSetModel()
        {
            var model = new EdmModel();

            var entity = new EdmEntityType("NS", "Entity");
            var entityId = entity.AddStructuralProperty("Id", EdmPrimitiveTypeKind.Int32);
            entity.AddKeys(entityId);
            var nav = entity.AddUnidirectionalNavigation(new EdmNavigationPropertyInfo() { Name = "Nav", Target = entity, TargetMultiplicity = EdmMultiplicity.One });
            model.AddElement(entity);

            var entityContainer = new EdmEntityContainer("NS", "Container");
            model.AddElement(entityContainer);
            
            var badSet = new CustomEntitySet(entityContainer, "BadSet", entity);
            badSet.AddNavigationTarget(nav, null);
            entityContainer.AddElement(badSet);

            return model;
        }
        public static IEdmModel InterfaceCriticalPropertyValueMustNotBeNullUsingEntitySetNullNavigationModel()
        {
            var model = new EdmModel();

            var entity = new EdmEntityType("NS", "Entity");
            var entityId = entity.AddStructuralProperty("Id", EdmPrimitiveTypeKind.Int32);
            entity.AddKeys(entityId);
            model.AddElement(entity);

            var entityContainer = new EdmEntityContainer("NS", "Container");
            model.AddElement(entityContainer);

            var goodSet = new EdmEntitySet(entityContainer, "GoodSet", entity);
            entityContainer.AddElement(goodSet);

            var badSet = new CustomEntitySet(entityContainer, "BadSet", entity);
            badSet.AddNavigationTarget(null, goodSet);
            entityContainer.AddElement(badSet);

            return model;
        }
        public static IEdmModel InterfaceCriticalPropertyValueMustNotBeNullUsingEntitySetElementTypeModel()
        {
            var model = new EdmModel();

            var entityContainer = new EdmEntityContainer("NS", "Container");
            model.AddElement(entityContainer);

            var badSet = new CustomEntitySet(entityContainer, "Set", null);
            entityContainer.AddElement(badSet);
            
            return model;
        }