コード例 #1
0
 public static ObjectDataProvider <TConnection, TDataParameter> GetProvider <TConnection, TDataParameter>(
     this DataProviderMetaData @this, ICache cache, SqlCommandGenerator sqlCommandGenerator)
     where TConnection : DbConnection, new()
     where TDataParameter : IDbDataParameter, new()
 {
     return(ObjectDataProviderFactory <TConnection, TDataParameter> .Get(@this.Type, cache, sqlCommandGenerator));
 }
コード例 #2
0
ファイル: ObjectDataProvider.cs プロジェクト: spspaner/Olive
        public ObjectDataProvider(Type type, ICache cache, SqlCommandGenerator sqlCommandGenerator)
            : base(cache)
        {
            entityType          = type;
            SqlCommandGenerator = sqlCommandGenerator;

            MetaData = DataProviderMetaDataGenerator.Generate(type);

            DeleteCommand = SqlCommandGenerator.GenerateDeleteCommand(MetaData);
            UpdateCommand = SqlCommandGenerator.GenerateUpdateCommand(MetaData);
            InsertCommand = SqlCommandGenerator.GenerateInsertCommand(MetaData);

            PrepareTableTemplate();
            PrepareFields();
            PrepareColumnMappingDictonary();
        }
コード例 #3
0
        static ObjectDataProvider <TConnection, TDataParameter> Create(Type type, ICache cache, SqlCommandGenerator sqlCommandGenerator)
        {
            var resultType = typeof(ObjectDataProvider <,>).MakeGenericType(typeof(TConnection), typeof(TDataParameter));

            return((ObjectDataProvider <TConnection, TDataParameter>)Activator.CreateInstance(resultType, type, cache, sqlCommandGenerator));
        }
コード例 #4
0
        public static ObjectDataProvider <TConnection, TDataParameter> Get(Type type, ICache cache, SqlCommandGenerator sqlCommandGenerator)
        {
            lock (Cache)
            {
                if (Cache.ContainsKey(type))
                {
                    return(Cache[type]);
                }

                var result = Create(type, cache, sqlCommandGenerator);
                Cache.Add(type, result);

                return(result);
            }
        }
コード例 #5
0
ファイル: ObjectDataProvider.cs プロジェクト: spspaner/Olive
 public override string GenerateWhere(DatabaseQuery query) =>
 SqlCommandGenerator.GenerateWhere(query);
コード例 #6
0
ファイル: ObjectDataProvider.cs プロジェクト: spspaner/Olive
 public override string GenerateSelectCommand(IDatabaseQuery iquery, string fields) =>
 SqlCommandGenerator.GenerateSelectCommand(iquery, GetTables(iquery.AliasPrefix), fields);