コード例 #1
0
        private List <TagPosition> EditTagPositionList(List <Position> positions)
        {
            //1.获取列表
            List <TagPosition> tagPosList        = TagPositions.ToList();
            List <TagPosition> changedTagPosList = new List <TagPosition>();

            //2.修改数据
            for (int i = 0; i < positions.Count; i++)
            {
                Position position = positions[i];
                if (position == null)
                {
                    continue;                  //位置信息可能有null
                }
                TagPosition tagPos = tagPosList.Find(item => item.Tag == position.Tag);
                if (tagPos == null)
                {
                    continue;
                }
                tagPos.Edit(position);
                if (!changedTagPosList.Contains(tagPos))
                {
                    changedTagPosList.Add(tagPos);
                }
            }
            return(changedTagPosList);
        }
コード例 #2
0
        public void AddTagPositionsByTags(List <Tag> tags)
        {
            List <TagPosition> tagPosList = TagPositions.ToList();//事先取出全部到内存中,比每次都到数据库中查询快很多。 100个从6.4s->1.8s,1.8s中主要是第一次查询的一些初始工作
            List <TagPosition> newPosList = new List <TagPosition>();

            foreach (Tag tag in tags)
            {
                //TagPosition tagPos = TagPositions.FindByCode(tag.Code);//100个要2s
                TagPosition tagPos = tagPosList.Find(i => i.Tag == tag.Code);//判断是否存在实时数据
                if (tagPos == null)
                {
                    TagPosition tagPosition = new TagPosition(tag.Code);
                    newPosList.Add(tagPosition);
                }
            }

            //TagPositions.Db.BulkInsert(newPosList);//插件Z.EntityFramework.Extensions功能
            //TagPositions.Db.BulkSaveChanges();

            foreach (TagPosition tp in newPosList)
            {
                TagPositions.Add(tp);
            }
        }