随笔分类 - 其它
摘要:几个常用的全局常量 调用Web.config节点的方法
阅读全文
摘要:项目为何要设计成N层架构?为何会有WEB,BLL和DAL,这些东西我们今天姑且不说,单说为什么要把BLL层进行抽象。 在之前我的博客中有一篇对WEB层的Controller进行了抽象,实现上对BLL层也可以进行一个必要的抽象,将大部分公用 的属性和方法进行抽象,提取到一个新的抽象类中,让其它BLL的业务逻辑类型去继承它,享用它内部公用的属性和方法 ,这在以后维护和扩展及程序稳定性上都非常重要...
阅读全文
摘要:呵呵,一个有趣的话题,事务(不是TSQL中的事务,只是指 System.Transactions下的TransactionScope类型)底道应该放在哪个层? 可以说,这个话题看你怎么看了: 如果同意在BLL层的,理由是:事务主要用来处理复杂逻辑,而复杂逻辑操作多表时需要用到事务,所以事务放在BLL层用来实现“逻辑组合”。而DAL层只负责最基础的数据操作,不管业务逻辑。 如果同意在DAL层的,理由...
阅读全文
摘要:将所有controller的公共属性和方法提取出来,放到一个controller基类里,共其它controller使用,这无疑不是一个好的选择,以下是我的项目中controller层的抽象,分享一下代码:/// <summary> /// Controller基类 /// </summary> public abstract class ControllerBase : Controller { #region Fields #endregion #region Constructor #endregion #region Properties /// <summ
阅读全文
摘要:回到目录上一篇文章主要让大家知道了基类与派生类,及它们的转换关系,即它们不能相互转换,只能从派生类转换到基类,下面来看一个抽象类和它派生类实现的一种编程方式,即面向抽象的编程。以下是面向抽象的编程实例:(完整代码) 1 /// <summary> 2 /// 基类 3 /// </summary> 4 abstract class parent 5 { 6 public string name { get; set; } 7 } 8 /// <summary> 9 /// 派生类110 /// </summ...
阅读全文
摘要:回到目录派生类可以直接强转为类基类型,而反之则不可以,它们的集合也具有这种特性以下实例是parent是基类,sub是它的派生类,如果有一个sub类型的集合希望转换为parent,那是可以的,它可以广泛的应用于面向接口和面向抽象的编程环境中。 1 class parent 2 { 3 public string name { get; set; } 4 } 5 class sub : parent { } 6 7 #region 由派生类集合强转成父类集合(正确) 8 List<sub> subl...
阅读全文
摘要:/// <summary> /// 业务层抽象基类 /// </summary> public abstract class ServiceBase { /// <summary> /// 通用消息 /// </summary> protected...
阅读全文
摘要:/// <summary> /// 数据操作基类 /// </summary> public abstract class TESTRepositoryBase { /// <summary> /// 数据库基类 /// </summary> protected Entity.TEST.LinqTESTDataContext db = (Entity.TEST.LinqTESTDataContext)DbFactory.Intance("TEST", System.Threading.Thread.CurrentThread)
阅读全文
摘要:前几天看了老赵的Translate方式解决多表关联后产生实体类型问题,但多数据量时还是不太妥当,所以最后还是用老的方法,建立一个实体类来解决这个问题 首先我让实体类和LINQ表类型名称一样,只是加了个后缀用来区分,并让它去继承LINQ表对象,这样它将有表对象的所有非私有的属性和方法。 如图: IEntity是个接口,只要继承它,就必须实现它的一个PrimaryKey这个属性,它用来统一表对象的主...
阅读全文
摘要:namespace Service{ public class Service<TEntity> : IService<TEntity> where TEntity : class,Entity.IEntity { private IRepository<TEntity> iRepository = null; public Service() { iRepository = new Repository<TEntity>(); } #region IService<TEntity> 成员 public TEntity GetMode
阅读全文
摘要:namespace Data.TEST{ /// /// 数据通用操作实现 /// /// public class Repository : TESTRepositoryBase, IRepository where TEntity : class,IEntit...
阅读全文
摘要:namespace Data.TEST{ /// <summary> /// 数据操作基类 /// </summary> public abstract class TESTRepositoryBase { /// <summary> /// 数据库基类 /// </summary> protected Entity.TEST.LinqTESTDataContext _db = (Entity.TEST.LinqTESTDataContext)DbFactory.Intance("TEST", System.Threading
阅读全文
摘要:namespace Data{ /// <summary> /// 数据库建立工厂 /// Created By : 张占岭 /// Created Date:2011-10-14 /// Modify By: /// Modify Date: /// Modify Reason: /// </summary> internal static class DbFactory { static Sy...
阅读全文
摘要:namespace System.Linq.Dynamic{ public static class DynamicQueryable { public static IQueryable<T> Where<T>(this IQueryable<T> source, string predicate, params object[] values) { ...
阅读全文
摘要:首先它是一个具有返回类型为ViewResult的一个方法,也就是说,我们可以通过返回ViewResult对象来代替View()方法,下面的操作是合法的 ViewData.Model = model; return new ViewResult { ViewName = viewName, MasterName = this.MasterFile, ViewData = ViewData, TempData = TempData }; 它在一般情况下等同于return view(model),这是微软为我们封装好的方法,让我们省去了不少代码,它的view(object model)方法原型可能.
阅读全文
摘要:action中定义一个得到结果集的方法 public ActionResult GetItemTree(string title, int itemid, int? page) { pp = new PagingParam(page ?? 1, VConfig.W...
阅读全文
浙公网安备 33010602011771号