v9.6.2017.0808   重构正向工程,基于映射表查找数据库字段类型到实体类型的映射
大石头 编写于 2017-08-08 21:38:06
X
using System.Collections.Generic;

namespace NewLife.Collections
{
    /// <summary>可空字典。获取数据时如果指定键不存在可返回空而不是抛出异常</summary>
    /// <typeparam name="TKey"></typeparam>
    /// <typeparam name="TValue"></typeparam>
    public class NullableDictionary<TKey, TValue> : Dictionary<TKey, TValue>, IDictionary<TKey, TValue>
    {
        /// <summary>实例化一个可空字典</summary>
        public NullableDictionary() { }

        /// <summary>置顶比较器实例化一个可空字典</summary>
        /// <param name="comparer"></param>
        public NullableDictionary(IEqualityComparer<TKey> comparer) : base(comparer) { }

        /// <summary>实例化一个可空字典</summary>
        /// <param name="dic"></param>
        /// <param name="comparer"></param>
        public NullableDictionary(IDictionary<TKey, TValue> dic, IEqualityComparer<TKey> comparer) : base(dic, comparer) { }

        /// <summary>获取或设置与指定的属性是否有脏数据。</summary>
        /// <param name="item"></param>
        /// <returns></returns>
        public new TValue this[TKey item]
        {
            get
            {
                TValue v;
                if (TryGetValue(item, out v)) return v;

                return default(TValue);
            }
            set
            {
                base[item] = value;
            }
        }
    }
}