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