示例#1
0
        /// <summary>
        /// 尝试为 evm 生成一个运行时的 Id,以方便这个没有数据库的类也能运行在 Rafy 界面框架上。
        /// </summary>
        /// <param name="evm"></param>
        /// <returns></returns>
        private static int GetRuntimeUniqueId(EntityViewMeta evm)
        {
            var viewName = evm.ExtendView;
            //if (string.IsNullOrEmpty(viewName)) return evm.EntityMeta.Id;

            var entityType = evm.EntityType;

            var res = _viewIds.FirstOrDefault(i => i.EntityType == entityType && i.ViewName == viewName);

            if (res == null)
            {
                lock (_viewIds)
                {
                    res = _viewIds.FirstOrDefault(i => i.EntityType == entityType && i.ViewName == viewName);
                    if (res == null)
                    {
                        res = new EVMUniqueId
                        {
                            EntityType = entityType,
                            ViewName   = viewName,
                            Id         = RafyEnvironment.NewLocalId()
                        };
                        _viewIds.Add(res);
                    }
                }
            }

            return(res.Id);
        }
示例#2
0
        /// <summary>
        /// 尝试为 evm 生成一个运行时的 Id,以方便这个没有数据库的类也能运行在 Rafy 界面框架上。
        /// </summary>
        /// <param name="evm"></param>
        /// <returns></returns>
        private static int GetRuntimeUniqueId(EntityViewMeta evm)
        {
            var viewName = evm.ExtendView;
            //if (string.IsNullOrEmpty(viewName)) return evm.EntityMeta.Id;

            var entityType = evm.EntityType;

            var res = _viewIds.FirstOrDefault(i => i.EntityType == entityType && i.ViewName == viewName);
            if (res == null)
            {
                lock (_viewIds)
                {
                    res = _viewIds.FirstOrDefault(i => i.EntityType == entityType && i.ViewName == viewName);
                    if (res == null)
                    {
                        res = new EVMUniqueId
                        {
                            EntityType = entityType,
                            ViewName = viewName,
                            Id = RafyEnvironment.NewLocalId()
                        };
                        _viewIds.Add(res);
                    }
                }
            }

            return res.Id;
        }