Example #1
0
        public override IList <DatabaseView> Views(string viewName)
        {
            var views = new Views(Owner, viewName)
                        .Execute(ConnectionAdapter);

            if (string.IsNullOrEmpty(viewName) || !views.Any())
            {
                if (_serverVersion == 0)
                {
                    _serverVersion = new ServerVersion().Execute(ConnectionAdapter);
                }

                var materializedViews = new MaterializedViews(Owner, viewName)
                {
                    ServerVersion = _serverVersion
                };
                var mviews = materializedViews
                             .Execute(ConnectionAdapter);
                foreach (var mview in mviews)
                {
                    views.Add(mview);
                }
            }
            return(views);
        }
Example #2
0
        public void ReadObject(BinSerializer bs)
        {
            uint propIndex;

            do
            {
                propIndex = bs.ReadUInt32();
                switch (propIndex)
                {
                case 1:
                    PrimaryKey.ReadObject(bs); break;

                case 2: StoreModelId = bs.ReadUInt64(); break;

                case 5:
                {
                    int count = bs.ReadInt32();
                    for (int i = 0; i < count; i++)
                    {
                        var mv = new CqlMaterializedView();
                        mv.ReadObject(bs);
                        MaterializedViews.Add(mv);
                    }
                }
                break;

                case 0: break;

                default: throw new Exception(string.Format("Deserialize_ObjectUnknownFieldIndex: {0} at {1} ", GetType().Name, propIndex));
                }
            } while (propIndex != 0);
        }
Example #3
0
 public override void Clear()
 {
     Tables.Clear();
     Views.Clear();
     MaterializedViews.Clear();
     Indexes.Clear();
     Sequences.Clear();
     Synonyms.Clear();
     Triggers.Clear();
     StoredProcedures.Clear();
 }
        public override IList <DatabaseView> Views(string viewName)
        {
            var views = new Views(Owner, viewName)
                        .Execute(DbConnection, DbTransaction);

            if (string.IsNullOrEmpty(viewName) || !views.Any())
            {
                var mviews = new MaterializedViews(Owner, viewName)
                             .Execute(DbConnection, DbTransaction);
                foreach (var mview in mviews)
                {
                    views.Add(mview);
                }
            }
            return(views);
        }
Example #5
0
        public override IList <DatabaseView> Views(string viewName)
        {
            var views = new Views(CommandTimeout, Owner, viewName)
                        .Execute(ConnectionAdapter);

            if (string.IsNullOrEmpty(viewName) || !views.Any())
            {
                var mviews = new MaterializedViews(CommandTimeout, Owner, viewName)
                             .Execute(ConnectionAdapter);
                foreach (var mview in mviews)
                {
                    views.Add(mview);
                }
            }
            return(views);
        }
Example #6
0
        void IEntityStoreOptions.UpdateFrom(EntityModel owner, IEntityStoreOptions other)
        {
            var from = (CqlStoreOptions)other;

            if (from != null && from.HasMaterializedView)
            {
                var mvComparer = new ViewComparer();
                var addedViews = from.MaterializedViews.Except(MaterializedViews, mvComparer);
                foreach (var addedView in addedViews)
                {
                    addedView.Import();
                    this.MaterializedViews.Add(addedView);
                }
                var removedViews = MaterializedViews.Except(from.MaterializedViews, mvComparer);
                foreach (var removedView in removedViews)
                {
                    removedView.MarkDelete();
                }
                // 暂不需要更新
                // var otherViews = this.MaterializedViews.Intersect(from.MaterializedViews, mvComparer);
                // foreach (var otherView in otherViews)
                // {
                //     otherView.UpdateFrom(from.MaterializedViews.Single(t => t.Name == otherView.Name));
                // }
            }
            else
            {
                if (HasMaterializedView)
                {
                    for (int i = 0; i < _materializedViews.Count; i++)
                    {
                        _materializedViews[i].MarkDelete();
                    }
                }
            }
        }