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. 浅谈Android View的定位

    引言 今天我们来介绍Android坐标系统和View的定位,当然也会介绍View的滑动相关话题.下面让我们开始介绍吧. View的基础知识 View是Android中所有控件的基类,无论是TextVi ...

  2. Summary: Deep Copy vs. Shallow Copy vs. Lazy Copy

    Object copy An object copy is an action in computing where a data object has its attributes copied t ...

  3. wcf 服务器无法处理请求由于内部错误

    The server was unable to process the request due to an internal error.  For more information about t ...

  4. windows脚本的if语句

  5. Intermediate Python for Data Science learning 2 - Histograms

    Histograms from:https://campus.datacamp.com/courses/intermediate-python-for-data-science/matplotlib? ...

  6. OnClick,OnClientClick和OnServerClick的区别

       OnClientClick是客户端事件处理方法,一般采用JavaScript来进行处理,也就是直接在IE端运行,一点击就运行 OnClick是服务器端事件处理方法,在服务器端也就是IIS中运行, ...

  7. 成本安全硬件(二):RFID on PN532 之WINDOWS 环境应用

    看了 低成本安全硬件(二):RFID on PN532之后,手上也有树莓派,于是下单买了个PN532 按文章方法,安装各类软件 ,折腾好好几天 还是不得行,LINUX 环境够乱啊 在网络 重新搜索,基 ...

  8. Python: re.IGNORECASE 标志参数字符串忽略大小写的搜索替换

    为了在文本操作时忽略大小写,需要在使用re 模块的时候给这些操作提供re.IGNORECASE 标志参数.比如 >>> text = 'UPPER PYTHON, lower pyt ...

  9. 2018-2019-2 20165209 《网络对抗技术》 Kali安装

    2018-2019-2 20165209 <网络对抗技术> Kali安装 目录内容 下载 安装 网络 共享 软件源 下载kali kali下载官网地址 我下载的版本(如下图所示) 安装 打 ...

  10. MySQL Crash Course #17# Chapter 25. 触发器(Trigger)

    推荐看这篇mysql 利用触发器(Trigger)让代码更简单 以及 23.3.1 Trigger Syntax and Examples 感觉有点像 Spring 里的 AOP 我们为什么需要触发器 ...