public object ResolveEntityPropertyValue(string rawValue, Type propertyType) { Type genericParameterType = propertyType.GetGenericArguments()[0]; if (rawValue.IsNullOrEmpty()) { return(CreateEmptyTypedList(genericParameterType)); } return(CreateLazyList(genericParameterType, () => { IList list = CreateEmptyTypedList(genericParameterType); var delimiter = new[] { Settings.ValueDelimiter }; string[] itemIds = rawValue.Split(delimiter, StringSplitOptions.RemoveEmptyEntries); IMap listTypeMap = MapFinder.FindMap(genericParameterType); foreach ( ISitecoreDomainEntity entity in m_repository.GetEntities(itemIds.Select(itemId => new Guid(itemId)), listTypeMap)) { list.Add(entity); } return list; })); }