예제 #1
0
        protected TypeMapper(ITable table, PropertyInfo[] properties, IDbTypeMapper dbTypeMapper)
        {
            if (properties == null || properties.Length == 0)
            {
                throw new ArgumentNullException(nameof(properties));
            }
            _table                       = table ?? throw new ArgumentNullException(nameof(table));
            DbTypeMapper                 = dbTypeMapper ?? throw new ArgumentNullException(nameof(dbTypeMapper));
            _propertyDictionary          = properties.ToDictionary(p => p.Name, p => p.PropertyType);
            _propertyGetFuncDictionary   = new Dictionary <string, Func <TEntity, object> >();
            _propertySetActionDictionary = new Dictionary <string, Action <TEntity, object> >();

            foreach (var property in properties)
            {
                if (!_table.Columns.ContainsKey(property.Name))
                {
                    throw new ArgumentException($"The table doesn't contains a column for property '{property.Name}'");
                }

                _propertyGetFuncDictionary.Add(
                    property.Name,
                    TypeUtil.BuildGetAccessor(property));

                _propertySetActionDictionary.Add(
                    property.Name,
                    TypeUtil.BuildSetAccessor(property));
            }
        }
예제 #2
0
 /// <summary>
 /// Initalize schmea builder
 /// </summary>
 /// <param name="config">Resource configuration</param>
 /// <param name="dbSchema">Schmea infomration to populate</param>
 /// <param name="typeMapper">How to map db types to c# types</param>
 public DbSchemaBuilderBase(
     Config config,
     IDbSchema dbSchema,
     IDbTypeMapper typeMapper)
 {
     Config      = config;
     _dbSchema   = dbSchema;
     _typeMapper = typeMapper;
 }
예제 #3
0
 public ValueMapper(string columnName, IDbTypeMapper dbTypeMapper)
 {
     if (columnName == null)
     {
         throw new ArgumentNullException(nameof(columnName));
     }
     ColumnName   = columnName;
     DbTypeMapper = dbTypeMapper;
 }
        public SqlExpressionTranslator(
            IDatabaseDriver databaseDriver,
            IDbTypeMapper dbTypeMapper,
            IDictionary <string, string> parameterReplacementDictionary = null,
            string parameterPrefix = "Param")
        {
            _databaseDriver = databaseDriver;
            _dbTypeMapper   = dbTypeMapper;
            _parameterReplacementDictionary = parameterReplacementDictionary;
            _parameterPrefix = parameterPrefix ?? throw new ArgumentNullException(nameof(parameterPrefix));

            _filter       = new StringBuilder();
            _filterValues = new Dictionary <string, object>();
        }
예제 #5
0
        public static SqlWhereStatement TranslateToSqlWhereClause <TEntity>(
            IDatabaseDriver databaseDriver,
            Expression <Func <TEntity, bool> > where,
            IDbTypeMapper dbTypeMapper,
            IDictionary <string, string> parameterReplacementDictionary = null)
        {
            if (where == null)
            {
                return(new SqlWhereStatement(databaseDriver.GetSqlStatementTemplate(SqlStatement.OneEqualsOne), new Dictionary <string, object>()));
            }

            var translator = new SqlExpressionTranslator(databaseDriver, dbTypeMapper, parameterReplacementDictionary);

            return(translator.GetStatement(where));
        }
예제 #6
0
 /// <summary>
 ///     Initializes a new instance of the NServiceKit.OrmLite.OrmLiteDialectProviderBase&lt;
 ///     TDialect&gt; class.
 /// </summary>
 protected DialectProviderBase(IDbTypeMapper mapper)
 {
     TypesMapper    = mapper;
     NamingStrategy = new NamingStrategyBase();
     ParamPrefix    = "@";
 }
예제 #7
0
 public TypeMapper(ITable table, Func <PropertyInfo, bool> propertyFilter, IDbTypeMapper dbTypeMapper = null)
     : this(table, typeof(TEntity).GetProperties(BindingFlags.Public | BindingFlags.Instance).Where(propertyFilter).ToArray(), dbTypeMapper ?? Sql.DbTypeMapper.Default)
 {
 }
예제 #8
0
 public TypeMapper(ITable table, IDbTypeMapper dbTypeMapper = null)
     : this(table, p => true, dbTypeMapper)
 {
 }
예제 #9
0
 public void Init()
 {
     mapper = new DbTypeMapper();
 }
예제 #10
0
 public SchemaBuilder1(Config config, IDbSchema dbSchema, IDbTypeMapper typeMapper) : base(config, dbSchema, typeMapper)
 {
     Dts = new[] { new DataTable() };
 }
예제 #11
0
 public SchmeaBuilder2(Config config, IDbSchema dbSchema, IDbTypeMapper typeMapper) : base(config, dbSchema, typeMapper)
 {
 }
 public void TextFixtureSetUp()
 {
     if(typeMapper == null)
         typeMapper = new SqlServer2000TypeMapper();
 }
 public SqlServer2000TypeMapperTestFixture(IDbTypeMapper typeMapper)
 {
     this.typeMapper = typeMapper;
 }