/// <summary> /// 添加成员 /// </summary> /// <param name="member"></param> /// <param name="byImport">是否导入的成员,是则不再生成标识</param> internal void AddMember(EntityMemberModel member, bool byImport = false) { CheckDesignMode(); CheckOwner(member.Owner); if (!byImport) { //TODO:通过设计时上下文获取ApplicationModel是否导入,从而确认当前Layer var layer = ModelLayer.DEV; var seq = layer == ModelLayer.DEV ? ++_devMemberIdSeq : ++_usrMemberIdSeq; if (seq >= MaxMemberId) { throw new Exception("MemberId out of range"); } ushort memberId = (ushort)(seq << IdUtil.MEMBERID_SEQ_OFFSET | (ushort)layer << IdUtil.MEMBERID_LAYER_OFFSET); member.InitMemberId(memberId); } Members.Add(member); if (!member.AllowNull) //注意仅none nullable { ChangeSchemaVersion(); } OnPropertyChanged(); }
/// <summary> /// Only used for StoreInitiator /// </summary> internal void AddSysMember(EntityMemberModel member, ushort id) { CheckDesignMode(); CheckOwner(member.Owner); member.InitMemberId(id); //注意:传入id已处理Layer标记位 Members.Add(member); }