日期:2014-05-18  浏览次数:20482 次

请教三层架构
/// <summary>
  /// 数据层操作接口
  /// </summary>
  /// <typeparam name="T"></typeparam>
  public interface IRepository<T> where T : class
  {
  //获取对像
  T Get(object id);
  T Get(object id, LockMode lockMode);
  T GetEvict(object id);
  T LoadFromId(object id);

  //添加接口
  object Save(T entity);
  void Save(T entity, object id);
  void SaveByIlist(IList<T> ilist);

  //更新接口
  void Update(T entity);
  void UpdateByIlist(IList<T> ilist);
  int Update(string queryString);
  void SaveOrUpdate(T entity);
   
  //删除
  void Delete(T entity);
  int Delete(string queryString);
  void DeleteByIlist(IList<T> ilist);

  //获取查询列表
  IList<T> LoadAll();
  IList<T> Find<T>(string queryString);
  //IList<T> Find<T>(string queryString, object value);
  IList<T> Find<T>(string queryString, params object[] values);
  //IList<T> Find<T>(string queryString, object[] values);
  IList<T> FindByNamedParam(string queryString, string[] paramNames, object[] values);
  IList<T> GetListForPage(string queryString, int currentPage, int pageSize, out int pageCount);

  //拆离对象
  void Evict(T entity);

  //获取查询对像
  INHibernateQueryable<T> CreateQuery();
  }

这个是怎么实现增删查改的?哪位大侠最好给个类似的三层例子 指导指导 谢了

------解决方案--------------------
你这个连为分层而分层都不算。

先学好怎么应用吧。

一般来说3层 分为 表现层 业务逻辑层 数据层 往往业务逻辑层和数据层很容易搞错界限,也没理论上的定式界线。 我个人理解是为了更好的维护 代码重用 提高效率。


------解决方案--------------------
你问的增删改查是 数据层做的事情。

比如你要做一个登录

表现层 里 有填写用户名 密码等表单。

业务逻辑层 有 一个操作该功能的函数
比如 UserLogin(string UserName)
该函数从前台收集信息 向数据层调用一个对应的函数
return SQLHelper.ExecuteScalarInt(传入SQL语句或存储过程名称,参数)

数据层
返回一个ExecuteScalarInt 处理结果

数据层就是做数据处理用的
比如获取一个 DataSet 比如返回一个查询结果 或者执行一条增删改语句并返回操作结果


------解决方案--------------------
这是 NHibernate 框架实现的 DAL。找一本书看看吧。
------解决方案--------------------
探讨
简单的三层架构我自己有弄过半年(模型层、业务逻辑层、数据访问层) 但是这个没弄过,一塌糊涂 求类似的案例以便新手学习

------解决方案--------------------
居然没贴上地址

http://www.verycd.com/topics/2758955/
------解决方案--------------------
居然没贴上地址

http://www.verycd.com/topics/2758955/