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); }
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); }
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); }
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); }
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(); } } } }