1.RepositoryFramework(仓储接口:无外乎就是CRUD)

  1.IAddRepository(添加接口) 

using System;

namespace Notify.Infrastructure.RepositoryFramework
{
/// <summary>
/// IAddRepository{Add单条数据的接口}
/// </summary>
/// <typeparam name="T">T</typeparam>
public interface IAddRepository<in T> : IDisposable
{
/// <summary>
/// Add
/// </summary>
/// <param name="entity">entity</param>
/// <returns>返回结果</returns>
void Add(T entity);
}
}

  2.IUpdateRepository(修改接接口)

using System;

namespace Notify.Infrastructure.RepositoryFramework
{
/// <summary>
/// IUpdateRepository{更新接口}
/// </summary>
/// <typeparam name="T">T</typeparam>
public interface IUpdateRepository<in T> : IDisposable
{
/// <summary>
/// Update
/// </summary>
/// <param name="entity">entity</param>
/// <returns>返回结果</returns>
void Update(T entity);
}
}

3.IQueryRepository(查询接口)

  

using System;

namespace Notify.Infrastructure.RepositoryFramework
{
/// <summary>
/// IQueryRepository{根据主键查询接口}.
/// </summary>
/// <typeparam name="TValue">实体</typeparam>
public interface IQueryRepository<out TValue> : IDisposable
{
/// <summary>
/// Query
/// </summary>
/// <param name="id">id</param>
/// <returns>返回查询单条数据</returns>
TValue Query(object id);
} /// <summary>
/// IQueryRepository{根据主键查询接口}.
/// </summary>
/// <typeparam name="TKey">Tkey</typeparam>
/// <typeparam name="TValue">实体</typeparam>
public interface IQueryRepository<in TKey,out TValue> : IDisposable
{
/// <summary>
/// Query
/// </summary>
/// <param name="key">id</param>
/// <returns>返回查询单条数据</returns>
TValue Query(TKey key);
}
}

  4.IRemoveRepository(删除接口)

using System;

namespace Notify.Infrastructure.RepositoryFramework
{
/// <summary>
/// IRepository{删除接口}
/// </summary>
/// <typeparam name="T">TKey</typeparam>
public interface IRemoveRepository<in T> : IDisposable
{
/// <summary>
/// Remove
/// </summary>
/// <param name="entity">T</param>
/// <returns>返回结果</returns>
void Remove(T entity);
}
}

5.IRepository(仓储接口 CRUD汇总)

using Notify.Infrastructure.DomainBase;

namespace Notify.Infrastructure.RepositoryFramework
{
/// <summary>
/// 仓储接口(CRUD)
/// </summary>
/// <typeparam name="TValue">实体</typeparam>
public interface IRepository<TValue> : IAddRepository<TValue>, IRemoveRepository<TValue>, IUpdateRepository<TValue>, IQueryRepository<TValue> where TValue : IEntity
{
} /// <summary>
/// 仓储接口(CRUD)
/// </summary>
/// <typeparam name="TKey">主键</typeparam>
/// <typeparam name="TValue">实体</typeparam>
public interface IRepository<in TKey, TValue> : IAddRepository<TValue>, IRemoveRepository<TValue>, IUpdateRepository<TValue>, IQueryRepository<TKey, TValue> where TValue : IEntity
{
}
}

  上篇--项目架构

  下篇--工作单元

EsayUI + MVC + ADO.NET(仓储基础接口)的更多相关文章

  1. EsayUI + MVC + ADO.NET(仓储基类)

      该篇主要讲解工作单元的运用 和DbHlper抽象封装 工作单元仓储基类:BaseRepository (DbHlper抽象封装)  仓储接口(CRUD):IRepository (CRUD接口) ...

  2. EsayUI + MVC + ADO.NET(项目架构)

    项目目录   1.项目架构: http://www.cnblogs.com/liuxiaoji/p/3922506.html  2.仓储基础接口: http://www.cnblogs.com/liu ...

  3. EsayUI + MVC + ADO.NET(工作单元)

    关联的设计 关联本身不是一个模式,但它在领域建模的过程中非常重要,所以需要在探讨各种模式之前,先讨论一下对象之间的关联该如何设计.我觉得对象的关联的设计可以遵循如下的一些原则: 关联尽量少,对象之间的 ...

  4. 4.在MVC中使用仓储模式进行增删查改

    原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/crud-using-the-repository-pattern-in-mvc/ 系列目录: ...

  5. ASP.NET MVC 3.0 Controller基础

    ASP.NET MVC 3.0 Controller基础   1.Controller类与方法 Controller(控制器)是ASP.NET MVC的核心,负责处理浏览器请求,并作出响应.Cotro ...

  6. MMORPG大型游戏设计与开发(服务器 AI 基础接口)

    一个模块都往往需要统一的接口支持,特别是对于非常大型的模块,基础结构的统一性非常重要,它往往决定了其扩展对象的通用性.昨天说了AI的基本概述以及组成,作为与场景模块中核心一样重要的地位,基础部分的设计 ...

  7. .net微信公众号开发——基础接口

    作者:王先荣    本文讲述微信公众号开发中基础接口的使用,包括以下内容:    (1)获取许可令牌(AccessToken):    (2)获取微信服务器地址:    (3)上传.下载多媒体文件:  ...

  8. php获取微信基础接口凭证Access_token

    php获取微信基础接口凭证Access_token的具体代码,供大家参考,具体内容如下 access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access_token.开发者需要进 ...

  9. face_recognition 基础接口

    face_recognition 基础接口 face_recognition使用世界上最简单的人脸识别库,在Python或命令行中识别和操作人脸. 使用dlib最先进的人脸识别技术构建而成,并具有深度 ...

随机推荐

  1. 机器学习理论基础学习3.3--- Linear classification 线性分类之logistic regression(基于经验风险最小化)

    一.逻辑回归是什么? 1.逻辑回归 逻辑回归假设数据服从伯努利分布,通过极大化似然函数的方法,运用梯度下降来求解参数,来达到将数据二分类的目的. logistic回归也称为逻辑回归,与线性回归这样输出 ...

  2. selenium webdriver处理浏览器Cookie

    有时候我们需要验证浏览器中是否存在某个cookie,因为基于真实的cookie 的测试是无法通过白盒和集成测试完成的.WebDriver 提供了操作Cookie 的相关方法可以读取.添加和删除cook ...

  3. 删除排序数组中的重复数字 II

    题目连接 http://www.lintcode.com/zh-cn/problem/remove-duplicates-from-sorted-array-ii/ 题目大意 跟进“删除重复数字”: ...

  4. Javascript-短路 与(&&)

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. css样式表--样式表分类

    样式表分类 1.内联式.写在body里.控制精确,可重复性差. <body> <div style="color:#90F">更好发挥的返回结果还 < ...

  6. 浏览器css hack

    (1)*:  IE6+IE7都能识别*,而标准浏览器FF+IE8是不能识别*的; (2)!important: 除IE6不能识别 !important外,  FF+IE8+IE7都能识别!import ...

  7. Linux命令: 编辑模式移动光标

    敲命令按以下顺序 ①vim filename ②e ③i ④ESC 移动光标 0 (零):将光标移动到行的起始处. $:将光标移动到行的末尾处. H:将光标移到当前窗口(而非全文)的第一行起始处. M ...

  8. CentOS安装JDK的三种办法

    方法一:手动解压JDK的压缩包,然后设置环境变量 1.在/usr/目录下创建java目录 [root@localhost ~]# mkdir/usr/java[root@localhost ~]# c ...

  9. 远程获得的有趣的linux命令

    使用这些工具从远程了解天气.阅读资料等. 我们即将结束为期 24 天的 Linux 命令行玩具日历.希望你有一直在看,如果没有,请回到开始,从头看过来.你会发现 Linux 终端有很多游戏.消遣和奇怪 ...

  10. python之路----钻石继承

    钻石继承 继承顺序 class A(object): def test(self): print('from A') class B(A): def test(self): print('from B ...