Ejemplo n.º 1
0
        private static T BindDataSets <T>(
            T dataContext, DataContextCreationOptions dataContextCreationOptions,
            DataSchema schema, IQueryProvider queryProvider
            ) where T : DataContext
        {
            var metadata = _metadata.GetOrCreate(typeof(T), typeof(T)) as DataContextMetadata <T> ??
                           throw new Exception("Metadata cache corrupted.");

            foreach (var sqlProperty in metadata.SqlDataSets)
            {
                sqlProperty.CreateAndAssignDataSet(
                    dataContext, queryProvider, schema,
                    dataContextCreationOptions);
            }

            return(dataContext);
        }
Ejemplo n.º 2
0
        public static T Create <T>(IDataProvider dataProvider, DataContextCreationOptions dataContextCreationOptions = null)
            where T : DataContext, new()
        {
            if (dataProvider == null)
            {
                throw new ArgumentNullException(nameof(dataProvider));
            }

            var dataProviderProxy = new TransactingDataProviderProxy(dataProvider);

            if (dataContextCreationOptions == null)
            {
                dataContextCreationOptions = DataContextCreationOptions.Default;
            }

            var dataContextType = typeof(T);
            var schema          = _schemas.GetOrCreate(dataContextType, dataContextType);

            return(BindDataSets(new T
            {
                DataSchema = schema,
                _dataProvider = dataProviderProxy
            }, dataContextCreationOptions, schema, dataProviderProxy));
        }
Ejemplo n.º 3
0
 public object CreateInstance(Type type)
 => _cache.GetOrCreate(type, type)();
Ejemplo n.º 4
0
 public Func <IServiceProvider, object> GetOrCreateFactory(Type type)
 {
     return(_factoryCache.GetOrCreate(type, type));
 }
Ejemplo n.º 5
0
 public static TypeModel GetModelOf(Type type)
 {
     return(_cachedCollection.GetOrCreate(type, type));
 }
Ejemplo n.º 6
0
 public static ObjectReaderWriter Get(Type type)
 => _cache.GetOrCreate(type, type);