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. qt用mingw编译时报错 multiple definition of

    网上相关回答不少,但过于简单,这里做一下记录. qt用mingw编译程序时报“multiple definition of …”这个错误,错误信息大概是如下图所示: 1 2 3 首先,检查自己的程序是 ...

  2. 将Pytorch模型从CPU转换成GPU

    1. 如何进行迁移 对模型和相应的数据进行.cuda()处理.通过这种方式,我们就可以将内存中的数据复制到GPU的显存中去.从而可以通过GPU来进行运算了. 1.1 判定使用GPU 下载了对应的GPU ...

  3. POJ3608

    计算两个凸包之间的最小距离,旋转卡壳法详解在旋转卡壳的用法之计算两个凸 包上的最近距离 #include <iostream> #include<cstdio> #includ ...

  4. Java求解迷宫问题:栈与回溯算法

    摘要: 使用栈的数据结构及相应的回溯算法实现迷宫创建及求解,带点JavaGUI 的基础知识. 难度: 中级 迷宫问题是栈的典型应用,栈通常也与回溯算法连用. 回溯算法的基本描述是: (1)  选择一个 ...

  5. Linux命令: 在线练习网址

    1.https://www.tutorialspoint.com/unix_terminal_online.php 2.从 这里 https://www.tutorialspoint.com/inde ...

  6. JVM内存分布

    参考引用文章地址: http://hllvm.group.iteye.com/group/wiki/3053-JVMhttp://blog.csdn.net/william001zs/article/ ...

  7. Ubuntu系统下Jenkins的git构建基本方法

    上一博文讲到了本地脚本的构建方法. 本篇博文主要讲“Ubuntu系统下Jenkins的git构建基本方法”. 点击保存后即可完成简单的构建. 构建触发器 这个触发器是决定什么时候触发构建,可以设置为定 ...

  8. servlet之一(概念/如何写/运行/错误提示/乱码处理)

    # 1. 什么是Servlet?   sun公司制订的一种用来扩展web服务器功能的组件规范. ## (1) 扩展web服务器功能(servlet的产生背景)       web服务器只能处理静态资源 ...

  9. Python 类中的"静态"成员变量

    本文环境:Python 2.7 一个类的三个对象实例的属性被同时修改 有段代码如下: class task_queue: queue=[] def append(self,obj): self.que ...

  10. php检查是否是数字和字母

    /* 检查是否是数字和字母* php内置函数ctype_alnum检查字符串是否是数字和字母,或者两者混合* $string*/ public function is_numandlitter($st ...