コード例 #1
0
        public static EdmModel BuildEdmModel(this OeDataAdapter dataAdapter)
        {
            var modelBuilder = new OeEdmModelBuilder(dataAdapter.EntitySetMetaAdapters.EdmModelMetadataProvider, dataAdapter.EntitySetMetaAdapters.ToDictionary());

            BuildOperations(dataAdapter, modelBuilder);
            return(modelBuilder.BuildEdmModel());
        }
コード例 #2
0
        public static EdmModel BuildEdmModel(this Db.OeDataAdapter dataAdapter)
        {
            var modelBuilder = new OeEdmModelBuilder(dataAdapter.EntitySetMetaAdapters.EdmModelMetadataProvider);

            modelBuilder.AddEntitySetRange(dataAdapter.EntitySetMetaAdapters.GetEntitySetNamesEntityTypes());
            BuildOperations(dataAdapter, modelBuilder);
            return(modelBuilder.BuildEdmModel());
        }
コード例 #3
0
        public static Db.OeDataAdapter GetDataAdapter(this IEdmModel edmModel, IEdmEntityContainer entityContainer)
        {
            Db.OeDataAdapter dataAdapter = edmModel.GetAnnotationValue <Db.OeDataAdapter>(entityContainer);
            if (dataAdapter == null)
            {
                dataAdapter = edmModel.GetEdmModel(entityContainer).GetAnnotationValue <Db.OeDataAdapter>(entityContainer);
            }

            return(dataAdapter);
        }
コード例 #4
0
 public static void BuildOperations(Db.OeDataAdapter dataAdapter, OeEdmModelBuilder modelBuilder)
 {
     OeOperationConfiguration[] operations = dataAdapter.OperationAdapter.GetOperations();
     if (operations != null)
     {
         foreach (OeOperationConfiguration operation in operations)
         {
             modelBuilder.AddOperation(operation);
         }
     }
 }
コード例 #5
0
        public static Db.OeDataAdapter GetDataAdapter(this IEdmModel edmModel, IEdmEntityContainer entityContainer)
        {
            Db.OeDataAdapter dataAdapter = edmModel.GetAnnotationValue <Db.OeDataAdapter>(entityContainer);
            if (dataAdapter == null)
            {
                dataAdapter = edmModel.GetEdmModel(entityContainer).GetAnnotationValue <Db.OeDataAdapter>(entityContainer);
            }

            if (dataAdapter == null)
            {
                throw new InvalidOperationException("OeDataAdapter not found in EdmModel");
            }

            return(dataAdapter);
        }
コード例 #6
0
        public static Db.OeDataAdapter GetDataAdapter(this IEdmModel edmModel, Type dataContextType)
        {
            Db.OeDataAdapter dataAdapter = edmModel.GetAnnotationValue <Db.OeDataAdapter>(edmModel.EntityContainer);
            if (dataAdapter.DataContextType == dataContextType)
            {
                return(dataAdapter);
            }

            foreach (IEdmModel refModel in edmModel.ReferencedModels)
            {
                if (refModel.EntityContainer != null)
                {
                    return(refModel.GetDataAdapter(dataContextType));
                }
            }

            throw new InvalidOperationException("OeDataAdapter not found for data context type " + dataContextType.FullName);
        }
コード例 #7
0
 private static void BuildOperations(OeDataAdapter dataAdapter, OeEdmModelBuilder modelBuilder)
 {
     MethodInfo[] operations = dataAdapter.GetOperations();
     if (operations != null)
     {
         foreach (MethodInfo methodInfo in operations)
         {
             var    description = (DescriptionAttribute)methodInfo.GetCustomAttribute(typeof(DescriptionAttribute));
             String name        = description == null ? methodInfo.Name : description.Description;
             OeOperationConfiguration functionConfiguration = modelBuilder.AddFunction(null, name);
             foreach (ParameterInfo parameterInfo in methodInfo.GetParameters())
             {
                 functionConfiguration.AddParameter(parameterInfo.Name, parameterInfo.ParameterType);
             }
             functionConfiguration.ReturnType = methodInfo.ReturnType;
         }
     }
 }
コード例 #8
0
 public OeGetParser(Db.OeDataAdapter dataAdapter, IEdmModel model)
 {
     _dataAdapter = dataAdapter;
     _edmModel    = model;
 }
コード例 #9
0
 public static void SetDataAdapter(this IEdmModel edmModel, EdmEntityContainer entityContainer, Db.OeDataAdapter dataAdapter)
 {
     edmModel.SetAnnotationValue(entityContainer, dataAdapter);
 }
コード例 #10
0
 public OeParser(Uri baseUri, Db.OeDataAdapter dataAdapter, IEdmModel model)
 {
     _baseUri     = baseUri;
     _dataAdapter = dataAdapter;
     _model       = model;
 }
コード例 #11
0
 public OeEntitySetAdapter(OeEntitySetMetaAdapter entitySetMetaAdapter, OeDataAdapter dataAdapter)
 {
     _entitySetMetaAdapter = entitySetMetaAdapter;
     _dataAdapter          = dataAdapter;
 }
コード例 #12
0
ファイル: OeParser.cs プロジェクト: techniq/OdataToEntity
 public OeParser(Uri baseUri, Db.OeDataAdapter dataAdapter, IEdmModel edmModel) : this(baseUri, edmModel)
 {
 }
コード例 #13
0
        public static EdmModel BuildEdmModel(this Db.OeDataAdapter dataAdapter, Type[] excludedTypes, params IEdmModel[] refModels)
        {
            var modelBuilder = new OeEdmModelBuilder(dataAdapter, new OeEdmModelMetadataProvider());

            return(modelBuilder.BuildEdmModel(excludedTypes, refModels));
        }
コード例 #14
0
 public OePostParser(Db.OeDataAdapter dataAdapter, IEdmModel edmModel)
 {
     _dataAdapter = dataAdapter;
     _edmModel    = edmModel;
 }