public static VCM Create(VersionChecker owner) { var version = owner._version; var result = new VCM() { ClassRegion = version.ClassRegion.AssemblyQualifiedName, ScopeId = version.ScopeId, Value = version.Value }; if (version.ScopeClass != null) { result.ScopeClass = version.ScopeClass.AssemblyQualifiedName; } return(result); }
/// <summary> /// 从缓存中读取指定实体类型的某个父对象下的所有子对象。 /// 如果缓存中不存在,或者缓存数据已经过期,则调用 GetByParentId 方法获取数据,并把最终数据加入到缓存中。 /// </summary> /// <param name="parent">The parent.</param> /// <returns></returns> internal override IList <Entity> GetCachedTableByParent(Entity parent) { //只使用 SqlCe 作为 GetByParent 的缓存 Cache cache = CacheInstances.Disk; IList <Entity> result = null; var sd = this.ClientCacheDefinition; if (sd != null) { var className = sd.Class.Name; var key = string.Format(CacheByParentKeyFormat, parent.Id); result = cache.Get(key, className) as IList <Entity>; if (result == null) { result = this._repository.GetByParentId(parent.Id); VersionChecker checker = null; if (sd.ScopeById) { var scopeId = sd.ScopeIdGetter(parent); checker = new VersionChecker(sd.Class, sd.ScopeClass, scopeId); } else { checker = new VersionChecker(sd.Class); } var policy = new Policy() { Checker = checker }; cache.Add(key, result, policy, className); } } return(result); }
/// <summary> /// 从缓存中读取指定实体类型的某个父对象下的所有子对象。 /// 如果缓存中不存在,或者缓存数据已经过期,则调用 GetByParentId 方法获取数据,并把最终数据加入到缓存中。 /// </summary> /// <param name="parent">The parent.</param> /// <returns></returns> internal override IList<Entity> GetCachedTableByParent(Entity parent) { //只使用 SqlCe 作为 GetByParent 的缓存 Cache cache = CacheInstance.Disk; IList<Entity> result = null; var sd = this.ClientCacheDefinition; if (sd != null) { var className = sd.Class.Name; var key = string.Format(CacheByParentKeyFormat, parent.Id); result = cache.Get(key, className) as IList<Entity>; if (result == null) { result = this._repository.GetByParentId(parent.Id); VersionChecker checker = null; if (sd.ScopeById) { var scopeId = sd.ScopeIdGetter(parent); checker = new VersionChecker(sd.Class, sd.ScopeClass, scopeId); } else { checker = new VersionChecker(sd.Class); } var policy = new Policy() { Checker = checker }; cache.Add(key, result, policy, className); } } return result; }
public static VCM Create(VersionChecker owner) { var version = owner._version; var result = new VCM() { ClassRegion = version.ClassRegion.AssemblyQualifiedName, ScopeId = version.ScopeId, Value = version.Value }; if (version.ScopeClass != null) { result.ScopeClass = version.ScopeClass.AssemblyQualifiedName; } return result; }