Esempio n. 1
0
        public override void ReadObject(BinSerializer bs)
        {
            base.ReadObject(bs);

            uint propIndex;

            do
            {
                propIndex = bs.ReadUInt32();
                switch (propIndex)
                {
                case 1:
                {
                    int count = bs.ReadInt32();
                    for (int i = 0; i < count; i++)
                    {
                        var m = (EntityMemberModel)bs.Deserialize();
                        Members.Add(m);
                    }
                }
                break;

                case 2: StoreOptions = (IEntityStoreOptions)bs.Deserialize(); break;

                case 3: _devMemberIdSeq = bs.ReadUInt16(); break;

                case 4: _usrMemberIdSeq = bs.ReadUInt16(); break;

                //case 6: _toStringExpression = (Expression)bs.Deserialize(); break;
                case 0: break;

                default: throw new Exception($"Deserialize_ObjectUnknownFieldIndex: {GetType().Name} at {propIndex} ");
                }
            } while (propIndex != 0);
        }
Esempio n. 2
0
        /// <summary>
        /// New EntityModel for other store
        /// </summary>
        internal EntityModel(ulong id, string name, IEntityStoreOptions storeOptions) : base(id, name)
        {
            if (storeOptions == null || storeOptions is SysStoreOptions)
            {
                throw new ArgumentException(nameof(storeOptions));
            }

            Members      = new List <EntityMemberModel>();
            StoreOptions = storeOptions;
        }
Esempio n. 3
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();
                    }
                }
            }
        }
Esempio n. 4
0
 /// <summary>
 /// New EntityModel for system store
 /// </summary>
 internal EntityModel(ulong id, string name, EntityStoreType storeType, bool orderByDesc = false) : base(id, name)
 {
     Members      = new List <EntityMemberModel>();
     StoreOptions = new SysStoreOptions(storeType, orderByDesc);
 }
Esempio n. 5
0
 void IEntityStoreOptions.UpdateFrom(EntityModel owner, IEntityStoreOptions other)
 {
     throw new NotImplementedException();
 }