Repository
namespace MyRepository.Domain.Infrastructure
{
public class Repository<TEntity> : IRepository<TEntity> where TEntity : class
{
protected BookStoreDbContext dbContext;
protected DbSet<TEntity> dbSet; public Repository(BookStoreDbContext dbContext)
{
this.dbContext = dbContext;
this.dbSet = dbContext.Set<TEntity>();
}
public void Insert(TEntity entity)
{
dbSet.Add(entity);
}
public void Update(TEntity entity)
{
dbSet.Attach(entity);
dbContext.Entry(entity).State = EntityState.Modified;
}
public void Delete(TEntity entity)
{
if (dbContext.Entry(entity).State == EntityState.Detached)
{
dbSet.Attach(entity);
}
dbSet.Remove(entity);
}
}
} /// <summary>
/// 用于对数据的保存操作
/// </summary>
public class UnitOfWork : IUnitOfWork
{
private readonly BookStoreDbContext _context;
public DbContext Context
{
get { return _context; }
} public event EventHandler Disposed; public bool IsDisposed { get; private set; }
public void Dispose()
{
Dispose(true);
}
public virtual void Dispose(bool disposing)
{
lock (this)
{
if (disposing && !IsDisposed)
{
_context.Dispose();
var evt = Disposed;
if (evt != null) evt(this, EventArgs.Empty);
Disposed = null;
IsDisposed = true;
GC.SuppressFinalize(this);
}
}
} public UnitOfWork(BookStoreDbContext context)
{
_context = context;
} public void Save()
{
_context.SaveChanges();
} ~UnitOfWork()
{
Dispose(false);
}
}
http://www.cnblogs.com/zhongxinWang/archive/2012/02/22/2360283.html
Repository的更多相关文章
- DDD 领域驱动设计-谈谈 Repository、IUnitOfWork 和 IDbContext 的实践(3)
上一篇:<DDD 领域驱动设计-谈谈 Repository.IUnitOfWork 和 IDbContext 的实践(2)> 这篇文章主要是对 DDD.Sample 框架增加 Transa ...
- Asp.Net Core + Dapper + Repository 模式 + TDD 学习笔记
0x00 前言 之前一直使用的是 EF ,做了一个简单的小项目后发现 EF 的表现并不是很好,就比如联表查询,因为现在的 EF Core 也没有啥好用的分析工具,所以也不知道该怎么写 Linq 生成出 ...
- windows 部署 git 服务器报 Please make sure you have the correct access rights and the repository exists.错误
这两天在阿里云上弄windows 服务器,顺便部署了一个git服务.根据网上教程一步步操作下来,最后在 remote远程仓库的时候提示 fatal: 'yourpath/test.git' does ...
- 初探领域驱动设计(2)Repository在DDD中的应用
概述 上一篇我们算是粗略的介绍了一下DDD,我们提到了实体.值类型和领域服务,也稍微讲到了DDD中的分层结构.但这只能算是一个很简单的介绍,并且我们在上篇的末尾还留下了一些问题,其中大家讨论比较多的, ...
- Repository 仓储,你的归宿究竟在哪?(三)-SELECT 某某某。。。
写在前面 首先,本篇博文主要包含两个主题: 领域服务中使用仓储 SELECT 某某某(有点晕?请看下面.) 上一篇:Repository 仓储,你的归宿究竟在哪?(二)-这样的应用层代码,你能接受吗? ...
- Failure to find xxx in xxx was cached in the local repository, resolution will not be reattempted until the update interval of nexus has elapsed or updates are forced @ xxx
问题: 在linux服务器上使用maven编译war时报错: 16:41:35 [FATAL] Non-resolvable parent POM for ***: Failure to find * ...
- DDD 领域驱动设计-谈谈 Repository、IUnitOfWork 和 IDbContext 的实践(2)
上一篇:<DDD 领域驱动设计-谈谈 Repository.IUnitOfWork 和 IDbContext 的实践(1)> 阅读目录: 抽离 IRepository 并改造 Reposi ...
- 【无私分享:ASP.NET CORE 项目实战(第五章)】Repository仓储 UnitofWork
目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 本章我们来创建仓储类Repository 并且引入 UnitOfWork 我对UnitOfWork的一些理解 UnitOfW ...
- CentOS系统yum源使用报错:Error: Cannot retrieve repository metadata (repomd.xml) for repository: rpmforge.
服务器上的yum突然不好使用,使用yum的时候报错如下:[root@bastion-IDC src]# yum list......Could not retrieve mirrorlist http ...
- Laravel与Repository Pattern(仓库模式)
为什么要学习Repository Pattern(仓库模式) Repository 模式主要思想是建立一个数据操作代理层,把controller里的数据操作剥离出来,这样做有几个好处: 把数据处理逻辑 ...
随机推荐
- QT QString类
字符串有如下几个操作符 QString提供了一个二元的"+"操作符用于组合两个字符串,并提供了一个"+="操作符用于将一个字符串追加到另一个字符串的末尾,例如: ...
- 网站如何启用SSL安全证书?IIS7启用新建Https:/
网站使用SSL,通过SSL证书申请,然后导入之后.我们需要对网站进行设置才能正常使用SSL证书,具体如何操作让网站启用SSL呢,本经验以一个网站添加SSL主机头的方式为例来,网站启用SSL服务器安全证 ...
- codeskulptor hosts
How to check out codeskulptor's host? Use tool: namecheckup Append to your hosts file, path: windows ...
- 《WCF服务编程第三版》知识点摘录
- 反射中getMethods 与 getDeclaredMethods 的区别
public Method[] getMethods()返回某个类的所有公用(public)方法包括其继承类的公用方法,当然也包括它所实现接口的方法.public Method[] getDeclar ...
- SpringMVC实现上传和下载
摘要 有些下载的错误解决来 java.lang.IllegalStateException: getOutputStream() has already been called for this re ...
- 解决vs2013使用Git推送到远程仓库报错的问题
在上一篇<让PowerShell使用Git>中可以让PowerShell运行Git命令,那么就开始使用. 1.从远程仓库克隆项目 GitHub和Git.oschina都是不错的免费托管网站 ...
- 20145215《Java程序设计》第1周学习总结
20145215<Java程序设计>第一周学习总结 教材学习内容总结 本周先学习了最基本的java环境的搭建. 首先从官网上下载了jdk(jdk与jre的区别在于如果只需要运行一个开发好的 ...
- 用scheme语言实现SPFA算法(单源最短路)
最近自己陷入了很长时间的学习和思考之中,突然发现好久没有更新博文了,于是便想更新一篇. 这篇文章是我之前程序设计语言课作业中一段代码,用scheme语言实现单源最段路算法.当时的我,花了一整天时间,学 ...
- python3 入门 (一) 基础语法
1.编码问题 默认情况下,Python 3源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串. 也可以为源码文件指定不同的编码,在文件头部加上: # coding=gbk 2.关键字 ...