持久层使用了LINQ TO SQL。

生成工具采用了T4 模板里面自带的一个linq sql 生成工具。比自带的那个好多了。

 

持久层用的最多的3个模式

dao,repository, dao+repository

它们之间的区别不说了。我用的是另外一种模式repository+extensions,这种方式比较适合查询语句相对简单的项目。

请看我写的这篇文章【轻量级数据过滤方案】

http://www.cnblogs.com/yuanhuaming/archive/2010/02/05/1664564.html

 

hibernate , entity framework 这类orm已经提供了很好的条件封装机制,只需提供一个通用的数据访问接口就行了,在社区甚至有人认为使用这些orm根本就不需要dal。

其实linq也可以只使用一个通用接口,只不过我对表达式树不了解,使用方面有困难。

看一下项目中repository的接口

interface IRepository<T>
{
    T Get(object id);
    IQueryable<T> FindAll();
 
    bool IsExists(Expression<Func<T, bool>> predicate);
 
    void Add(T entity);
    void Add(List<T> entitys);
    void Delete(T entity);
    void Delete(List<T> entitys);
    void Delete(Expression<Func<T, bool>> predicate);
 
    void Save();
}

相关文章: