PropertyContainer.cs 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace DapperORMCore.Dapper
  7. {
  8. public class PropertyContainer
  9. {
  10. private readonly Dictionary<string, object> _ids;
  11. private readonly Dictionary<string, object> _values;
  12. #region Properties
  13. internal IEnumerable<string> IdNames
  14. {
  15. get { return _ids.Keys; }
  16. }
  17. internal IEnumerable<string> ValueNames
  18. {
  19. get { return _values.Keys; }
  20. }
  21. internal IEnumerable<string> AllNames
  22. {
  23. get { return _ids.Keys.Union(_values.Keys); }
  24. }
  25. internal IDictionary<string, object> IdPairs
  26. {
  27. get { return _ids; }
  28. }
  29. internal IDictionary<string, object> ValuePairs
  30. {
  31. get { return _values; }
  32. }
  33. public IEnumerable<KeyValuePair<string, object>> AllPairs
  34. {
  35. get { return _ids.Concat(_values); }
  36. }
  37. #endregion
  38. #region Constructor
  39. internal PropertyContainer()
  40. {
  41. _ids = new Dictionary<string, object>();
  42. _values = new Dictionary<string, object>();
  43. }
  44. #endregion
  45. #region Methods
  46. internal void AddId(string name, object value)
  47. {
  48. _ids.Add(name, value);
  49. }
  50. internal void AddValue(string name, object value)
  51. {
  52. _values.Add(name, value);
  53. }
  54. #endregion
  55. }
  56. }