Beispiel #1
0
        public static void Load(IObjectMapInfoCache cache)
        {
            cache.ThrowIfNullArgument(nameof(cache));

            DirectoryInfo dir   = new DirectoryInfo(Runtime.StartupDirectory);
            var           files = dir.EnumerateFiles("*", SearchOption.TopDirectoryOnly);

            foreach (var file in files)
            {
                if (file.Extension == ClrClassPath.DLL || file.Extension == ClrClassPath.EXE)
                {
                    try
                    {
                        AttributeMapLoader loader = new AttributeMapLoader(cache, Runtime.GetPath(file.Name));
                        loader.Load();
                    }
                    catch (BadImageFormatException)
                    {
                    }
                }
            }

            string[] paths = ORMConfig.ORMConfiguration.GetObjectMapPaths();
            foreach (string path in paths)
            {
                XmlMapLoader loader = new XmlMapLoader(cache, path);
                loader.Load();
            }
        }
 protected AbstractFilterExpressionVisitor(ISQLTranslator tr, IObjectMapInfoCache cache)
 {
     tr.ThrowIfNullArgument(nameof(tr));
     cache.ThrowIfNullArgument(nameof(cache));
     _tr    = tr;
     _cache = cache;
 }
Beispiel #3
0
 public IModelSQLEmit CreateModelSQLEmit(IObjectMapInfoCache cache)
 {
     ITypeMap tm = new TypeMap();
     ISQLTranslator tr = new SQLTranslator();
     IModelColumnsBuilder cb = new ModelColumnsBuilder(tr, tm);
     return new ModelSQLEmit(cache, tr, tm, cb);
 }
Beispiel #4
0
        private static IDatabase _OpenDatabase(string databaseId)
        {
            try
            {
                var                 info  = ORMConfig.ORMConfiguration.GetDatabaseInfo(databaseId);
                IDbConnection       cnn   = CoreFactory.CreateDbProvider(databaseId).CreateConnection(info.ConnectString);
                ISQLExecutor        exe   = new SQLExecutor(databaseId, cnn);
                IObjectMapInfoCache cache = CoreFactory.ObjectMapInfoCache;

                var           dialect = CoreFactory.CreateDialectProvider(databaseId);
                IModelSQLEmit emit    = dialect.CreateModelSQLEmit(cache);
                IMetaQuery    meta    = dialect.CreateMetaQuery(exe);

                if (cnn.State != ConnectionState.Open)
                {
                    cnn.Open();
                }

                return(new Database(exe, emit, meta));
            }
            catch (Exception ex)
            {
                throw ex.CreateWrapException <SessionException>();
            }
        }
Beispiel #5
0
        public static void Load(IObjectMapInfoCache cache)
        {
            cache.ThrowIfNullArgument(nameof(cache));

            DirectoryInfo dir = new DirectoryInfo(Runtime.StartupDirectory);
            var files = dir.EnumerateFiles("*", SearchOption.TopDirectoryOnly);
            foreach (var file in files)
            {
                if (file.Extension == ClrClassPath.DLL || file.Extension == ClrClassPath.EXE)
                {
                    try
                    {
                        AttributeMapLoader loader = new AttributeMapLoader(cache, Runtime.GetPath(file.Name));
                        loader.Load();
                    }
                    catch (BadImageFormatException)
                    {
                    }
                }
            }

            string[] paths = ORMConfig.ORMConfiguration.GetObjectMapPaths();
            foreach (string path in paths)
            {
                XmlMapLoader loader = new XmlMapLoader(cache, path);
                loader.Load();
            }
        }
Beispiel #6
0
        public AttributeMapLoader(IObjectMapInfoCache cache, string file)
        {
            cache.ThrowIfNullArgument(nameof(cache));
            file.ThrowIfNullArgument(nameof(file));

            _cache = cache;
            _file  = file;
        }
Beispiel #7
0
        public IModelSQLEmit CreateModelSQLEmit(IObjectMapInfoCache cache)
        {
            ITypeMap             tm = new TypeMap();
            ISQLTranslator       tr = new SQLTranslator();
            IModelColumnsBuilder cb = new ModelColumnsBuilder(tr, tm);

            return(new ModelSQLEmit(cache, tr, tm, cb));
        }
Beispiel #8
0
 public IMappingSQLEmit CreateMappingSQLEmit(IObjectMapInfoCache cache)
 {
     ISQLTranslator tr = new SQLTranslator();
     IMappingColumnsBuilder cb = new MappingColumnsBuilder(tr);
     IMappingConditionExpressionVisitor cv = new MappingConditionExpressionVisitor(tr);
     IMappingOrderExpressionVisitor ov = new MappingOrderExpressionVisitor(tr);
     return new MappingSQLEmit(cache, cb, tr, cv, ov);
 }
Beispiel #9
0
        public void SetUp()
        {
            if (!AppConfig.Loaded)
                AppConfig.Load(ConfigFactory.CreateXmlConfig());

            _cache = new ObjectMapInfoCache();
            MappingInfoLoader.Load(_cache);
        }
Beispiel #10
0
        public AttributeMapLoader(IObjectMapInfoCache cache, string file)
        {
            cache.ThrowIfNullArgument(nameof(cache));
            file.ThrowIfNullArgument(nameof(file));

            _cache = cache;
            _file = file;
        }
Beispiel #11
0
        public IMappingSQLEmit CreateMappingSQLEmit(IObjectMapInfoCache cache)
        {
            ISQLTranslator                     tr = new SQLTranslator();
            IMappingColumnsBuilder             cb = new MappingColumnsBuilder(tr);
            IMappingConditionExpressionVisitor cv = new MappingConditionExpressionVisitor(tr);
            IMappingOrderExpressionVisitor     ov = new MappingOrderExpressionVisitor(tr);

            return(new MappingSQLEmit(cache, cb, tr, cv, ov));
        }
        protected AbstractQueryColumnBuilder(ISQLTranslator tr, IObjectMapInfoCache cache)
        {
            cache.ThrowIfNullArgument(nameof(cache));
            tr.ThrowIfNullArgument(nameof(tr));

            _tr    = tr;
            _cache = cache;
            _str   = new StringBuilder();
        }
        protected AbstractQueryColumnBuilder(ISQLTranslator tr, IObjectMapInfoCache cache)
        {
            cache.ThrowIfNullArgument(nameof(cache));
            tr.ThrowIfNullArgument(nameof(tr));

            _tr = tr;
            _cache = cache;
            _str = new StringBuilder();
        }
        protected AbstractQueryViewVisitor(ISQLTranslator tr, IJoinExpressionVisitor jv, IObjectMapInfoCache cache)
        {
            tr.ThrowIfNullArgument(nameof(tr));
            jv.ThrowIfNullArgument(nameof(jv));
            cache.ThrowIfNullArgument(nameof(cache));

            _cache = cache;
            _tr = tr;
            _jv = jv;
        }
Beispiel #15
0
        protected AbstractQueryViewVisitor(ISQLTranslator tr, IJoinExpressionVisitor jv, IObjectMapInfoCache cache)
        {
            tr.ThrowIfNullArgument(nameof(tr));
            jv.ThrowIfNullArgument(nameof(jv));
            cache.ThrowIfNullArgument(nameof(cache));

            _cache = cache;
            _tr    = tr;
            _jv    = jv;
        }
Beispiel #16
0
        public void SetUp()
        {
            if (!AppConfig.Loaded)
            {
                AppConfig.Load(ConfigFactory.CreateXmlConfig());
            }

            _cache = new ObjectMapInfoCache();
            MappingInfoLoader.Load(_cache);
        }
Beispiel #17
0
        public XmlMapLoader(IObjectMapInfoCache cache, string file)
        {
            cache.ThrowIfNullArgument(nameof(cache));
            file.ThrowIfNullArgument(nameof(file));

            _cache = cache;
            _file  = file;

            _clrDict = new Dictionary <string, ClrClassPath>();
            _dbDict  = new Dictionary <string, DbPath>();
        }
Beispiel #18
0
        public XmlMapLoader(IObjectMapInfoCache cache, string file)
        {
            cache.ThrowIfNullArgument(nameof(cache));
            file.ThrowIfNullArgument(nameof(file));

            _cache = cache;
            _file = file;

            _clrDict = new Dictionary<string, ClrClassPath>();
            _dbDict = new Dictionary<string, DbPath>();
        }
Beispiel #19
0
 protected AbstractModelSQLEmit(IObjectMapInfoCache cache, ISQLTranslator tr, ITypeMap tm, IModelColumnsBuilder cb)
 {
     tr.ThrowIfNullArgument(nameof(tr));
     tm.ThrowIfNullArgument(nameof(tm));
     cb.ThrowIfNullArgument(nameof(cb));
     cache.ThrowIfNullArgument(nameof(cache));
     this._tr    = tr;
     this._tm    = tm;
     this._cb    = cb;
     this._cache = cache;
 }
Beispiel #20
0
 public IQuerySQLEmit CreateQuerySQLEmit(IObjectMapInfoCache cache)
 {
     ISQLTranslator tr = new SQLTranslator();
     IJoinExpressionVisitor jev = new JoinExpressionVisitor(tr, cache);
     IFilterExpressionVisitor fev = new FilterExpressionVisitor(tr, cache);
     IQueryViewVisitor vv = new QueryViewVisitor(tr, jev, cache);
     IQueryColumnBuilder cb = new QueryColumnBuilder(tr, cache);
     IQueryCriteriaVisitor cv = new QueryCriteriaVisitor(tr, fev);
     IOrderExpressionVisitor oev = new OrderExpressionVisitor(tr, cache);
     IQueryOrderVisitor ov = new QueryOrderVisitor(tr, oev);
     return new QuerySQLEmit(cache, tr, vv, cb, cv, ov);
 }
Beispiel #21
0
        public IQuerySQLEmit CreateQuerySQLEmit(IObjectMapInfoCache cache)
        {
            ISQLTranslator           tr  = new SQLTranslator();
            IJoinExpressionVisitor   jev = new JoinExpressionVisitor(tr, cache);
            IFilterExpressionVisitor fev = new FilterExpressionVisitor(tr, cache);
            IQueryViewVisitor        vv  = new QueryViewVisitor(tr, jev, cache);
            IQueryColumnBuilder      cb  = new QueryColumnBuilder(tr, cache);
            IQueryCriteriaVisitor    cv  = new QueryCriteriaVisitor(tr, fev);
            IOrderExpressionVisitor  oev = new OrderExpressionVisitor(tr, cache);
            IQueryOrderVisitor       ov  = new QueryOrderVisitor(tr, oev);

            return(new QuerySQLEmit(cache, tr, vv, cb, cv, ov));
        }
Beispiel #22
0
        protected AbstractMappingSQLEmit(IObjectMapInfoCache cache, IMappingColumnsBuilder cb, ISQLTranslator tr, IMappingConditionExpressionVisitor cv, IMappingOrderExpressionVisitor ov)
        {
            cache.ThrowIfNullArgument(nameof(cache));
            cb.ThrowIfNullArgument(nameof(cb));
            tr.ThrowIfNullArgument(nameof(tr));
            cv.ThrowIfNullArgument(nameof(cv));
            ov.ThrowIfNullArgument(nameof(ov));

            _cache = cache;
            _cb    = cb;
            _tr    = tr;
            _cv    = cv;
            _ov    = ov;
        }
Beispiel #23
0
        public static string ChooseNameFromView(this ParameterExpression p, IEnumerable<SingleEntityView> svList, IObjectMapInfoCache cache)
        {
            var matchType = from v in svList
                            where v.EntityType == p.Type
                            select v;

            switch (matchType.Count())
            {
                case 0:
                    ParseExceptionHelper.ThrowTypeNotDefinedInView(p);
                    break;

                case 1:
                    SingleEntityView view = matchType.First();
                    if ((!string.IsNullOrEmpty(view.Alias)) && view.Alias != p.Name)
                        ParseExceptionHelper.ThrowParameterNameNotMatchViewAlias(p.Name, view.Alias, view.EntityType);

                    if (!string.IsNullOrEmpty(view.Alias))
                        return view.Alias;
                    else
                    {
                        var map = cache.GetMapInfo(p.Type, true);
                        return map.Table.LocalName;
                    }

                default:
                    var q = from v in matchType
                            where v.Alias == p.Name
                            select v;

                    switch (q.Count())
                    {
                        case 0:
                            ParseExceptionHelper.ThrowNoAliasForParameterName(p);
                            break;

                        case 1:
                            return q.First().Alias;

                        default:
                            ParseExceptionHelper.ThrowMultiTypeHaveSameAlias(p);
                            break;
                    }

                    break;
            }
            return string.Empty;
        }
Beispiel #24
0
        public AbstractQuerySQLEmit(IObjectMapInfoCache cache, ISQLTranslator tr, IQueryViewVisitor vv, IQueryColumnBuilder cb, IQueryCriteriaVisitor cv, IQueryOrderVisitor ov)
        {
            cache.ThrowIfNullArgument(nameof(cache));
            tr.ThrowIfNullArgument(nameof(tr));
            vv.ThrowIfNullArgument(nameof(vv));
            cb.ThrowIfNullArgument(nameof(cb));
            cv.ThrowIfNullArgument(nameof(cv));
            ov.ThrowIfNullArgument(nameof(ov));

            _cache = cache;
            _tr = tr;
            _vv = vv;
            _cb = cb;
            _cv = cv;
            _ov = ov;
        }
Beispiel #25
0
        public AbstractQuerySQLEmit(IObjectMapInfoCache cache, ISQLTranslator tr, IQueryViewVisitor vv, IQueryColumnBuilder cb, IQueryCriteriaVisitor cv, IQueryOrderVisitor ov)
        {
            cache.ThrowIfNullArgument(nameof(cache));
            tr.ThrowIfNullArgument(nameof(tr));
            vv.ThrowIfNullArgument(nameof(vv));
            cb.ThrowIfNullArgument(nameof(cb));
            cv.ThrowIfNullArgument(nameof(cv));
            ov.ThrowIfNullArgument(nameof(ov));

            _cache = cache;
            _tr    = tr;
            _vv    = vv;
            _cb    = cb;
            _cv    = cv;
            _ov    = ov;
        }
Beispiel #26
0
        private static ISession _OpenSession(string databaseId)
        {
            try
            {
                var                 info   = ORMConfig.ORMConfiguration.GetDatabaseInfo(databaseId);
                IDbConnection       cnn    = CoreFactory.CreateDbProvider(databaseId).CreateConnection(info.ConnectString);
                ISQLExecutor        exe    = new SQLExecutor(databaseId, cnn);
                IObjectMapInfoCache cache  = CoreFactory.ObjectMapInfoCache;
                IEntityManager      mgr    = new EntityManager(exe, CoreFactory.CreateDialectProvider(databaseId).CreateMappingSQLEmit(cache));
                IEntityQuery        qry    = new EntityQuery(exe, CoreFactory.CreateDialectProvider(databaseId).CreateQuerySQLEmit(cache));
                INativeSQL          native = new NativeSQL(exe);

                if (cnn.State != ConnectionState.Open)
                {
                    cnn.Open();
                }

                return(new SimpleSession(exe, mgr, qry, native));
            }
            catch (Exception ex)
            {
                throw ex.CreateWrapException <SessionException>();
            }
        }
Beispiel #27
0
 public MappingSQLEmit(IObjectMapInfoCache cache, IMappingColumnsBuilder cb, ISQLTranslator tr, IMappingConditionExpressionVisitor cv, IMappingOrderExpressionVisitor ov)
     : base(cache, cb, tr, cv, ov)
 {
 }
Beispiel #28
0
        public static string ChooseNameFromView(this ParameterExpression p, IEnumerable <SingleEntityView> svList, IObjectMapInfoCache cache)
        {
            var matchType = from v in svList
                            where v.EntityType == p.Type
                            select v;

            switch (matchType.Count())
            {
            case 0:
                ParseExceptionHelper.ThrowTypeNotDefinedInView(p);
                break;

            case 1:
                SingleEntityView view = matchType.First();
                if ((!string.IsNullOrEmpty(view.Alias)) && view.Alias != p.Name)
                {
                    ParseExceptionHelper.ThrowParameterNameNotMatchViewAlias(p.Name, view.Alias, view.EntityType);
                }

                if (!string.IsNullOrEmpty(view.Alias))
                {
                    return(view.Alias);
                }
                else
                {
                    var map = cache.GetMapInfo(p.Type, true);
                    return(map.Table.LocalName);
                }

            default:
                var q = from v in matchType
                        where v.Alias == p.Name
                        select v;

                switch (q.Count())
                {
                case 0:
                    ParseExceptionHelper.ThrowNoAliasForParameterName(p);
                    break;

                case 1:
                    return(q.First().Alias);

                default:
                    ParseExceptionHelper.ThrowMultiTypeHaveSameAlias(p);
                    break;
                }

                break;
            }
            return(string.Empty);
        }
Beispiel #29
0
 public ModelSQLEmit(IObjectMapInfoCache cache, ISQLTranslator tr, ITypeMap tm, IModelColumnsBuilder cb)
     : base(cache, tr, tm, cb)
 {
 }
Beispiel #30
0
 public QuerySQLEmit(IObjectMapInfoCache cache, ISQLTranslator tr, IQueryViewVisitor vv, IQueryColumnBuilder cb, IQueryCriteriaVisitor cv, IQueryOrderVisitor ov)
     : base(cache, tr, vv, cb, cv, ov)
 {
 }
Beispiel #31
0
 public QueryColumnBuilder(ISQLTranslator tr, IObjectMapInfoCache cache)
     : base(tr, cache)
 {
 }
Beispiel #32
0
 public QueryColumnBuilder(ISQLTranslator tr, IObjectMapInfoCache cache)
     : base(tr, cache)
 {
 }
Beispiel #33
0
 public FilterExpressionVisitor(ISQLTranslator tr, IObjectMapInfoCache cache)
     : base(tr, cache)
 {
 }
Beispiel #34
0
 public QueryViewVisitor(ISQLTranslator tr, IJoinExpressionVisitor jv, IObjectMapInfoCache cache)
     : base(tr, jv, cache)
 {
 }
Beispiel #35
0
 public OrderExpressionVisitor(ISQLTranslator tr, IObjectMapInfoCache cache)
     : base(tr, cache)
 {
 }
Beispiel #36
0
 public QueryViewVisitor(ISQLTranslator tr, IJoinExpressionVisitor jv, IObjectMapInfoCache cache)
     : base(tr, jv, cache)
 {
 }
Beispiel #37
0
 public QuerySQLEmit(IObjectMapInfoCache cache, ISQLTranslator tr, IQueryViewVisitor vv, IQueryColumnBuilder cb, IQueryCriteriaVisitor cv, IQueryOrderVisitor ov)
     : base(cache, tr, vv, cb, cv, ov)
 {
 }