/// <summary>
        /// 更新一条记录(异步方式)
        /// </summary>
        /// <param name="entity">实体模型</param>
        /// <returns></returns>
        public virtual async Task <bool> UpdateAsync(ProducerEntity entity)
        {
            Dictionary <string, object> dict = new Dictionary <string, object>();

            GetParameters(entity, dict);
            string strSQL = "Update Producer SET " +
                            "ProducerType = @ProducerType," +
                            "ProducerName = @ProducerName," +
                            "ProducerShortName = @ProducerShortName," +
                            "ProducerPhoto = @ProducerPhoto," +
                            "BirthDay = @BirthDay," +
                            "Address = @Address," +
                            "Postcode = @Postcode," +
                            "Phone = @Phone," +
                            "Fax = @Fax," +
                            "Email = @Email," +
                            "Homepage = @Homepage," +
                            "ProducerIntro = @ProducerIntro," +
                            "LastUseTime = @LastUseTime," +
                            "IsPassed = @IsPassed," +
                            "IsTop = @IsTop," +
                            "IsElite = @IsElite," +
                            "Hits = @Hits" +
                            " WHERE " +

                            "ProducerID = @ProducerID";

            return(await Task.Run(() => _DB.ExeSQLResult(strSQL, dict)));
        }
        /// <summary>
        /// 增加一条记录,返回新的ID号。需要有一个单一主键,并且开启有标识符属性(异步方式)
        /// </summary>
        /// <param name="entity">实体模型</param>
        /// <returns></returns>
        public virtual async Task <int> InsertAsync(ProducerEntity entity)
        {
            if (entity.ProducerID <= 0)
            {
                entity.ProducerID = GetNewID();
            }
            Dictionary <string, object> dict = new Dictionary <string, object>();

            GetParameters(entity, dict);

            string strSQL = "insert into Producer (" +
                            "ProducerID," +
                            "ProducerType," +
                            "ProducerName," +
                            "ProducerShortName," +
                            "ProducerPhoto," +
                            "BirthDay," +
                            "Address," +
                            "Postcode," +
                            "Phone," +
                            "Fax," +
                            "Email," +
                            "Homepage," +
                            "ProducerIntro," +
                            "LastUseTime," +
                            "IsPassed," +
                            "IsTop," +
                            "IsElite," +
                            "Hits) " +
                            "values(" +
                            "@ProducerID," +
                            "@ProducerType," +
                            "@ProducerName," +
                            "@ProducerShortName," +
                            "@ProducerPhoto," +
                            "@BirthDay," +
                            "@Address," +
                            "@Postcode," +
                            "@Phone," +
                            "@Fax," +
                            "@Email," +
                            "@Homepage," +
                            "@ProducerIntro," +
                            "@LastUseTime," +
                            "@IsPassed," +
                            "@IsTop," +
                            "@IsElite," +
                            "@Hits)";

            if (await Task.Run(() => _DB.ExeSQLResult(strSQL, dict)))
            {
                return(DataConverter.CLng(entity.ProducerID));
            }
            return(-1);
        }
        /// <summary>
        /// 增加一条记录
        /// </summary>
        /// <param name="entity">实体模型</param>
        /// <returns></returns>
        public virtual bool Add(ProducerEntity entity)
        {
            if (entity.ProducerID <= 0)
            {
                entity.ProducerID = GetNewID();
            }
            Dictionary <string, object> dict = new Dictionary <string, object>();

            GetParameters(entity, dict);

            string strSQL = "insert into Producer (" +
                            "ProducerID," +
                            "ProducerType," +
                            "ProducerName," +
                            "ProducerShortName," +
                            "ProducerPhoto," +
                            "BirthDay," +
                            "Address," +
                            "Postcode," +
                            "Phone," +
                            "Fax," +
                            "Email," +
                            "Homepage," +
                            "ProducerIntro," +
                            "LastUseTime," +
                            "IsPassed," +
                            "IsTop," +
                            "IsElite," +
                            "Hits) " +
                            "values(" +
                            "@ProducerID," +
                            "@ProducerType," +
                            "@ProducerName," +
                            "@ProducerShortName," +
                            "@ProducerPhoto," +
                            "@BirthDay," +
                            "@Address," +
                            "@Postcode," +
                            "@Phone," +
                            "@Fax," +
                            "@Email," +
                            "@Homepage," +
                            "@ProducerIntro," +
                            "@LastUseTime," +
                            "@IsPassed," +
                            "@IsTop," +
                            "@IsElite," +
                            "@Hits)";

            return(_DB.ExeSQLResult(strSQL, dict));
        }
        /// <summary>
        /// 获取实体(异步方式)
        /// </summary>
        /// <param name="strWhere">参数化查询条件(例如: and Name = @Name )</param>
        /// <param name="dict">参数的名/值集合</param>
        /// <returns></returns>
        public virtual async Task <ProducerEntity> GetEntityAsync(string strWhere, Dictionary <string, object> dict = null)
        {
            ProducerEntity obj    = null;
            string         strSQL = "select top 1 * from Producer where 1=1 " + strWhere;

            using (NullableDataReader reader = await Task.Run(() => _DB.GetDataReader(strSQL, dict)))
            {
                if (reader.Read())
                {
                    obj = GetEntityFromrdr(reader);
                }
            }
            return(obj);
        }
 /// <summary>
 /// 把实体类转换成键/值对集合
 /// </summary>
 /// <param name="entity"></param>
 /// <param name="dict"></param>
 private static void GetParameters(ProducerEntity entity, Dictionary <string, object> dict)
 {
     dict.Add("ProducerID", entity.ProducerID);
     dict.Add("ProducerType", entity.ProducerType);
     dict.Add("ProducerName", entity.ProducerName);
     dict.Add("ProducerShortName", entity.ProducerShortName);
     dict.Add("ProducerPhoto", entity.ProducerPhoto);
     dict.Add("BirthDay", entity.BirthDay);
     dict.Add("Address", entity.Address);
     dict.Add("Postcode", entity.Postcode);
     dict.Add("Phone", entity.Phone);
     dict.Add("Fax", entity.Fax);
     dict.Add("Email", entity.Email);
     dict.Add("Homepage", entity.Homepage);
     dict.Add("ProducerIntro", entity.ProducerIntro);
     dict.Add("LastUseTime", entity.LastUseTime);
     dict.Add("IsPassed", entity.IsPassed);
     dict.Add("IsTop", entity.IsTop);
     dict.Add("IsElite", entity.IsElite);
     dict.Add("Hits", entity.Hits);
 }
        /// <summary>
        /// 通过数据读取器生成实体类
        /// </summary>
        /// <param name="rdr"></param>
        /// <returns></returns>
        private static ProducerEntity GetEntityFromrdr(NullableDataReader rdr)
        {
            ProducerEntity info = new ProducerEntity();

            info.ProducerID        = rdr.GetInt32("ProducerID");
            info.ProducerType      = rdr.GetInt32("ProducerType");
            info.ProducerName      = rdr.GetString("ProducerName");
            info.ProducerShortName = rdr.GetString("ProducerShortName");
            info.ProducerPhoto     = rdr.GetString("ProducerPhoto");
            info.BirthDay          = rdr.GetNullableDateTime("BirthDay");
            info.Address           = rdr.GetString("Address");
            info.Postcode          = rdr.GetString("Postcode");
            info.Phone             = rdr.GetString("Phone");
            info.Fax           = rdr.GetString("Fax");
            info.Email         = rdr.GetString("Email");
            info.Homepage      = rdr.GetString("Homepage");
            info.ProducerIntro = rdr.GetString("ProducerIntro");
            info.LastUseTime   = rdr.GetNullableDateTime("LastUseTime");
            info.IsPassed      = rdr.GetBoolean("IsPassed");
            info.IsTop         = rdr.GetBoolean("IsTop");
            info.IsElite       = rdr.GetBoolean("IsElite");
            info.Hits          = rdr.GetInt32("Hits");
            return(info);
        }
 /// <summary>
 /// 增加或更新一条记录(异步方式)
 /// </summary>
 /// <param name="entity">实体模型</param>
 /// <param name="IsSave">是否增加</param>
 /// <returns></returns>
 public virtual async Task <bool> AddOrUpdateAsync(ProducerEntity entity, bool IsSave)
 {
     return(IsSave ? await AddAsync(entity) : await UpdateAsync(entity));
 }
 /// <summary>
 /// 增加或更新一条记录
 /// </summary>
 /// <param name="entity">实体模型</param>
 /// <param name="IsSave">是否增加</param>
 /// <returns></returns>
 public virtual bool AddOrUpdate(ProducerEntity entity, bool IsSave)
 {
     return(IsSave ? Add(entity) : Update(entity));
 }