/// <summary>
/// 数据操作基类 /// </summary> public abstract class TESTRepositoryBase { /// <summary> /// 数据库基类 /// </summary> protected Entity.TEST.LinqTESTDataContext db = (Entity.TEST.LinqTESTDataContext)DbFactory.Intance("TEST", System.Threading.Thread.CurrentThread); /// <summary> /// 统一提交动作 /// </summary> protected virtual void SubmitChanges() { ChangeSet cSet = db.GetChangeSet(); if (cSet.Inserts.Count > 0 || cSet.Updates.Count > 0 || cSet.Deletes.Count > 0) { try { db.SubmitChanges(System.Data.Linq.ConflictMode.ContinueOnConflict); } catch (System.Data.Linq.ChangeConflictException ex) { foreach (System.Data.Linq.ObjectChangeConflict occ in db.ChangeConflicts) { // 使用当前数据库中的值,覆盖Linq缓存中实体对象的值 occ.Resolve(System.Data.Linq.RefreshMode.OverwriteCurrentValues); // 使用Linq缓存中实体对象的值,覆盖当前数据库中的值 occ.Resolve(System.Data.Linq.RefreshMode.KeepCurrentValues); // 只更新实体对象中改变的字段的值,其他的保留不变 occ.Resolve(System.Data.Linq.RefreshMode.KeepChanges); } db.SubmitChanges(); } } } /// <summary> /// 数据统一接口方法 /// 子类可以通过本方法,对指定类型进行CURD操作 /// </summary> /// <typeparam name="TEntity"></typeparam> /// <returns></returns> protected virtual IRepository<TEntity> Repository<TEntity>() where TEntity : class,IEntity { return new Repository<TEntity>(); } }