Пример #1
0
        /// <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);
                }
            }
        }
Пример #2
0
 /// <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));
         }
     }
 }