Mercurial > pub > bltoolkit
view Source/Data/Sql/ChildContainer.cs @ 4:f757da6161a1
!bug 100 + 2h fixed gregression
| author | cin | 
|---|---|
| date | Sun, 24 Aug 2014 17:57:42 +0400 | 
| parents | f990fcb411a9 | 
| children | 
line wrap: on
 line source
using System; using System.Collections.Generic; namespace BLToolkit.Data.Sql { public class ChildContainer<TP,TC> : Dictionary<string,TC>, IDictionary<string,TC> where TC : IChild<TP> where TP : class { internal ChildContainer() { } internal ChildContainer(TP parent) { _parent = parent; } readonly TP _parent; public TP Parent { get { return _parent; } } public void Add(TC item) { Add(item.Name, item); } public new void Add(string key, TC value) { if (value.Parent != null) throw new InvalidOperationException("Invalid parent."); value.Parent = _parent; base.Add(key, value); } public void AddRange(IEnumerable<TC> collection) { foreach (var item in collection) Add(item); } } }
