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. 国内maven库

    国内maven库 <mirrors> <mirror> <id>CN</id> <name>OSChina Central</name ...

  2. Python做接口自动化测试框架

    框架结构如下: Test_Api_Project||---base.py|---base_api| |---register_api.py | |---send_sms_code_api.py|--- ...

  3. 使用TreeView加载XML文件

    PS: 由于小弟初学编程,本文只写实现方式,代码写的不是很好请见谅! 1.需要读取的xml文档内容 2. 最终实现效果 3  貌似看起实现起来很复杂 但是想想还是挺简单 思路:  读取XML文档 →获 ...

  4. vs计算代码行数

    1.用vs打开程序 2.编辑——查找——在文件中查找 3.查找内容^b*[^:b#/]+.*$   应用正则表达式,在整个解决方案中,文件类型空 4.查找全部,仔细盯着右下角数字,查找完毕后会自动消失 ...

  5. C++中的访问权限

    C++中类的成员的权限: private:只能由该类的成员函数,友元函数访问,不能被该类的对象访问. protected:除了private外还能被子类的函数访问,同样不能被该类的对象访问. publ ...

  6. UVM中的factory机制实现

    首先在Systemverilog中便有对于重载的最基本的支持. 1)定义task/function时,使用virtual关键字.那之后在test_case中调用时,便使用句柄指向的对象的类型而不是句柄 ...

  7. python+Django框架运用(一)

    Django 介绍: django是一个采用Python语言开发的开源框架,2005年发布.早期是做新闻以及内容管理的网站的,提供了非常强大的后管理系统. django官网:https://www.d ...

  8. Python tricks(5) -- string和integer的comparison操作

    我们都知道, python是一个强类型的语言, 也是一个动态类型的语言. 但是在python2.X系列中, 这个强类型是需要打折扣的, 是非常接近强类型. 我们来看下面的代码片段 In [1]: 'a ...

  9. linux常用命令:/etc/group文件详解

    Linux /etc/group文件与/etc/passwd和/etc/shadow文件都是有关于系统管理员对用户和 用户组管理时相关的文件.linux /etc/group文件是有关于系统管理员对用 ...

  10. VNC的安装和常用命令

    主要参考文章:http://www.cnblogs.com/coderzh/archive/2008/07/16/1243990.html                         http:/ ...