/// <summary> /// 插入记录 /// </summary> /// <param name="info">实体类</param> /// <param name="db">可传入事务的db</param> /// <param name="identity">标识</param> public bool Insert(TInfo info, out int identity, DbExecutor db = null) { bool result; var indexHaveValue = Map.GetModelInfo().Key != null ? Map.GetModelInfo().Key.GetValue(info, null) != null : false; var lst = ToList(db); // 如果标识没有值,则必须取值。 if (indexHaveValue) { result = Data.Insert(info, db); identity = Map.GetModelInfo().Key.GetValue(info, null).ConvertType(0); } else { result = Data.Insert(info, out identity, db); #region 赋值给主键 if (!Map.IndexName.IsNullOrEmpty()) { var kic = Map.GetModelInfo(Map.IndexName); if (kic.Key.CanWrite) { kic.Key.SetValue(info, identity, null); } } #endregion } if (result) { lst.Add(info); } return(result); }