Fly with the wind-TerryDong

.NET on the way
posts - 13, comments - 37, trackbacks - 1, articles - 0

DAL层接口代码

Posted on 2007-11-13 15:17 Terry Dong 阅读(157) 评论(1)  编辑 收藏 所属分类: terrydong's 3层快速开发框架

/*
Name:IDataBase
Author: Terry Dong
Description: interface for data access
*/
using System;
using System.Data;
using System.Collections.Generic;
using TerryDong.SystemFramework;
namespace TerryDong.DAL
{
    public interface IDataBase<T>
    {

        /// <summary>
        /// get max ID
        /// </summary>
        int GetMaxId();

        /// <summary>
        /// if exists data
        /// </summary>
        bool Exists(string primaryKeyId);

        /// <summary>
        /// add new entity
        /// </summary>
        void Add(T t);

        /// <summary>
        /// update entity
        /// </summary>
        void Update(T t);

        /// <summary>
        /// delete data by primarykeyid
        /// </summary>
        void Delete(int primaryKeyId);

        /// <summary>
        /// get entity data
        /// </summary>
        T GetEntity(int primaryKeyId);

        /// <summary>
        /// get dataset data
        /// </summary>
        DataSet GetDataSet(string strWhere);

        /// <summary>
        /// get dataset data default is all.
        /// </summary>
        DataSet GetDataSet();

        /// <summary>
        /// get entity list by input condition
        /// </summary>
        SortList<T> GetList(string strWhere);

    }
}

Terry Dong

Feedback

#1楼    回复  引用  查看    

2007-12-06 19:48 by 预备役中尉      
互相切磋下.请多指教.
/// <summary>
/// <see cref="IDataAccessor&lt;T&gt;"/>为<c>JasonNet</c>平台提供的进行业务实体数据访问的接口,用于进行
/// <typeparamref name="T"/>所指定业务实体的CRUD操作。
/// </summary>
/// <typeparam name="T">业务实体的类型,必须实现<see cref="IEntity"/>接口。</typeparam>
/// Title: IDataAccessor
/// Author: 姜辉
/// Version: 1.0
/// History:
/// 2007-03-28 姜辉 [创建]
public interface IDataAccessor<T> where T : IEntity
{
/// <summary>
/// 进行业务实体的插入操作。
/// </summary>
/// <param name="entity">待进行插入操作的业务实体</param>
/// <returns>
/// 插入数据库后的业务实体,除主键外,返回的业务实体中的各属性值均与传入时对应的属性值一致。
/// </returns>
/// <exception cref="UniqueKeyDuplicatedException">
/// 当数据库表中的唯一键出现重复的情况时所抛出的异常。</exception>
/// <exception cref="ColumnValueNotValidException">
/// 当进行操作时,如果发生数据库表中的字段值不合法时所抛出的异常。</exception>
/// <exception cref="DatabaseException">当数据库发生其他General错误时所抛出的异常。</exception>
T Insert(T entity);

/// <summary>
/// 进行业务实体的插入操作。
/// </summary>
/// <param name="entity">待进行插入操作的业务实体</param>
/// <param name="transaction">进行操作时所用到的数据库事务对象</param>
/// <returns>
/// 插入数据库后的业务实体,除主键外,返回的业务实体中的各属性值均与传入时对应的属性值一致。
/// </returns>
/// <exception cref="ArgumentNullException">当<paramref name="transaction"/>为空时抛出的异常。</exception>
/// <exception cref="UniqueKeyDuplicatedException">
/// 当数据库表中的唯一键出现重复的情况时所抛出的异常。</exception>
/// <exception cref="ColumnValueNotValidException">
/// 当进行操作时,如果发生数据库表中的字段值不合法时所抛出的异常。</exception>
/// <exception cref="DatabaseException">当数据库发生其他General错误时所抛出的异常。</exception>
T Insert(T entity, DbTransaction transaction);

/// <summary>
/// 根据指定的Id进行业务实体的删除操作。
/// </summary>
/// <param name="entityId">待进行删除操作的业务实体的Id</param>
/// <exception cref="DatabaseException">当数据库发生其他General错误时所抛出的异常。</exception>
void Delete(object entityId);

/// <summary>
/// 根据指定的Id进行业务实体的删除操作。
/// </summary>
/// <param name="entityId">待进行删除操作的业务实体的Id</param>
/// <param name="transaction">进行操作时所用到的数据库事务对象</param>
/// <exception cref="ArgumentNullException">当<paramref name="transaction"/>为空时抛出的异常。</exception>
/// <exception cref="DatabaseException">当数据库发生其他General错误时所抛出的异常。</exception>
void Delete(object entityId, DbTransaction transaction);

/// <summary>
/// 进行业务实体的更新操作,只更新非默认值的属性。
/// </summary>
/// <param name="entity">待进行更新操作的业务实体</param>
/// <exception cref="EntityNotFoundException">当无法找到数据库表中的指定记录时所抛出的异常。</exception>
/// <exception cref="UniqueKeyDuplicatedException">
/// 当数据库表中的唯一键出现重复的情况时所抛出的异常。</exception>
/// <exception cref="ColumnValueNotValidException">
/// 当进行操作时,如果发生数据库表中的字段值不合法时所抛出的异常。</exception>
/// <exception cref="DatabaseException">当数据库发生其他General错误时所抛出的异常。</exception>
void Update(T entity);

/// <summary>
/// 进行业务实体的更新操作,只更新非默认值的属性。
/// </summary>
/// <param name="entity">待进行更新操作的业务实体</param>
/// <param name="transaction">进行操作时所用到的数据库事务对象</param>
/// <exception cref="ArgumentNullException">当<paramref name="transaction"/>为空时抛出的异常。</exception>
/// <exception cref="EntityNotFoundException">当无法找到数据库表中的指定记录时所抛出的异常。</exception>
/// <exception cref="UniqueKeyDuplicatedException">
/// 当数据库表中的唯一键出现重复的情况时所抛出的异常。</exception>
/// <exception cref="ColumnValueNotValidException">
/// 当进行操作时,如果发生数据库表中的字段值不合法时所抛出的异常。</exception>
/// <exception cref="DatabaseException">当数据库发生其他General错误时所抛出的异常。</exception>
void Update(T entity, DbTransaction transaction);

/// <summary>
/// 进行业务实体的更新操作,根据<paramref name="updateAll"/>的值来判断是否只更新非默认值的属性。如果
/// <paramref name="updateAll"/>为<c>true</c>,则更新实体中的所有属性,否则只更新非默认值的属性。
/// </summary>
/// <param name="entity">待进行更新操作的业务实体</param>
/// <param name="updateAll">是否更新全部属性的标志</param>
/// <exception cref="EntityNotFoundException">当无法找到数据库表中的指定记录时所抛出的异常。</exception>
/// <exception cref="UniqueKeyDuplicatedException">
/// 当数据库表中的唯一键出现重复的情况时所抛出的异常。</exception>
/// <exception cref="ColumnValueNotValidException">
/// 当进行操作时,如果发生数据库表中的字段值不合法时所抛出的异常。</exception>
/// <exception cref="DatabaseException">当数据库发生其他General错误时所抛出的异常。</exception>
void Update(T entity, bool updateAll);

/// <summary>
/// 进行业务实体的更新操作,根据<paramref name="updateAll"/>的值来判断是否只更新非默认值的属性。如果
/// <paramref name="updateAll"/>为<c>true</c>,则更新实体中的所有属性,否则只更新非默认值的属性。
/// </summary>
/// <param name="entity">待进行更新操作的业务实体</param>
/// <param name="updateAll">是否更新全部属性的标志</param>
/// <param name="transaction">进行操作时所用到的数据库事务对象</param>
/// <exception cref="ArgumentNullException">当<paramref name="transaction"/>为空时抛出的异常。</exception>
/// <exception cref="EntityNotFoundException">当无法找到数据库表中的指定记录时所抛出的异常。</exception>
/// <exception cref="UniqueKeyDuplicatedException">
/// 当数据库表中的唯一键出现重复的情况时所抛出的异常。</exception>
/// <exception cref="ColumnValueNotValidException">
/// 当进行操作时,如果发生数据库表中的字段值不合法时所抛出的异常。</exception>
/// <exception cref="DatabaseException">当数据库发生其他General错误时所抛出的异常。</exception>
void Update(T entity, bool updateAll, DbTransaction transaction);

/// <summary>
/// 根据指定的Id读取业务实体对象。
/// </summary>
/// <param name="entityId">需要读取的业务实体的Id</param>
/// <returns>数据表中<paramref name="entityId"/>所对应的业务实体</returns>
/// <exception cref="DatabaseException">当数据库发生其他General错误时所抛出的异常。</exception>
T Get(object entityId);

/// <summary>
/// 根据指定的Id读取业务实体对象。
/// </summary>
/// <param name="entityId">需要读取的业务实体的Id</param>
/// <param name="transaction">进行操作时所用到的数据库事务对象</param>
/// <returns>数据表中<paramref name="entityId"/>所对应的业务实体</returns>
/// <exception cref="ArgumentNullException">当<paramref name="transaction"/>为空时抛出的异常。</exception>
/// <exception cref="DatabaseException">当数据库发生其他General错误时所抛出的异常。</exception>
T Get(object entityId, DbTransaction transaction);

/// <summary>
/// 查询符合<see cref="IFilter"/>过滤条件,且在<paramref name="pageIndex"/>和<paramref name="pageSize"/>
/// 所指定范围内的业务实体对象的记录。
/// </summary>
/// <param name="pageIndex">在符合搜索条件的查询结果范围内获取记录的起始页数,该值从<c>0</c>开始,
/// 即<c>0</c>表示查询结果记录集的第一页,如果值小于<c>0</c>,则抛出<see cref="ArgumentOutOfRangeException"/>。
/// </param>
/// <param name="pageSize">指定查询结果记录集的每一页的大小,如果该值取<c>-1</c>,则只要参数
/// <paramref name="pageIndex"/>是一个合法的值,都会将符合查询条件的所有查询结果记录返回;如果该参
/// 数的值为非<c>-1</c>的负数,则抛出<see cref="ArgumentOutOfRangeException"/>。</param>
/// <param name="filter">一个<see cref="IFilter"/>的实现,<see cref="IFilter"/>定义了进行数据过滤
/// 的接口,该参数可以为<c>Null</c>,表示无查询条件。</param>
/// <param name="sort">一个<see cref="ISort"/>的实现,<see cref="ISort"/>定义了进行查询的接口,该参数可以为
/// <c>Null</c>,表示以主键进行排序。</param>
/// <param name="totalRecords">符合<paramref name="filter"/>查询条件的结果记录集的记录个数</param>
/// <returns>符合过滤条件且在指定范围内的业务实体对象记录集。</returns>
/// <exception cref="ArgumentOutOfRangeException">
/// 当<paramref name="pageIndex"/>的值小于0或<paramref name="pageSize"/>非-1的负数时抛出的异常。</exception>
/// <exception cref="DatabaseException">当数据库发生其他General错误时所抛出的异常。</exception>
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", MessageId = "4#")]
IList<T> Find(int pageIndex, int pageSize, IFilter filter, ISort sort, out long totalRecords);

/// <summary>
/// 查询符合<see cref="IFilter"/>过滤条件,且在<paramref name="pageIndex"/>和<paramref name="pageSize"/>
/// 所指定范围内的业务实体对象的记录。
/// </summary>
/// <param name="pageIndex">在符合搜索条件的查询结果范围内获取记录的起始页数,该值从<c>0</c>开始,
/// 即<c>0</c>表示查询结果记录集的第一页,如果值小于<c>0</c>,则抛出<see cref="ArgumentOutOfRangeException"/>。
/// </param>
/// <param name="pageSize">指定查询结果记录集的每一页的大小,如果该值取<c>-1</c>,则只要参数
/// <paramref name="pageIndex"/>是一个合法的值,都会将符合查询条件的所有查询结果记录返回;如果该参
/// 数的值为非<c>-1</c>的负数,则抛出<see cref="ArgumentOutOfRangeException"/>。</param>
/// <param name="filter">一个<see cref="IFilter"/>的实现,<see cref="IFilter"/>定义了进行数据过滤
/// 的接口,该参数可以为<c>Null</c>,表示无查询条件。</param>
/// <param name="sort">一个<see cref="ISort"/>的实现,<see cref="ISort"/>定义了进行查询的接口,该参数可以为
/// <c>Null</c>,表示以主键进行排序。</param>
/// <param name="totalRecords">符合<paramref name="filter"/>查询条件的结果记录集的记录个数</param>
/// <param name="transaction">进行操作时所用到的数据库事务对象</param>
/// <returns>符合过滤条件且在指定范围内的业务实体对象记录集。</returns>
/// <exception cref="ArgumentOutOfRangeException">
/// 当<paramref name="pageIndex"/>的值小于0或<paramref name="pageSize"/>非-1的负数时抛出的异常。</exception>
/// <exception cref="ArgumentNullException">当<paramref name="transaction"/>为空时抛出的异常。</exception>
/// <exception cref="DatabaseException">当数据库发生其他General错误时所抛出的异常。</exception>
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", MessageId = "4#")]
IList<T> Find(int pageIndex, int pageSize, IFilter filter, ISort sort, out long totalRecords, DbTransaction transaction);
}

标题  
姓名  
主页
Email (只有博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交