/// <summary> /// 从数据读取器中加载数据到输出的内容对象中。 /// </summary> /// <param name="reader">数据读取器。</param> /// <param name="content">目标内容。</param> protected virtual void LoadDataToContent(DbDataReader reader, IOutputContent content) { var item = (OutputContentObject)content; if (item.Content != null) { foreach (var kv in item.Members) { kv.Key.LoadDataToContent(reader, kv.Value); } } }
/// <inheritdoc/> protected override void LoadDataToContent(DbDataReader reader, IOutputContent content) { if (!IsEmpty(reader)) { var collection = (OutputContentCollection)content; if (HasCollectionProperty) { string key = string.Join("_", ItemKeyFields.Select(a => reader.GetValue(a).ToString()).ToArray()); if (!collection.TryGetValue(key, out OutputContentObject item)) { item = CreateContentItem(reader); collection.Add(key, item); } base.LoadDataToContent(reader, item); } else { collection.Add(CreateObjectItem(reader)); } } }