- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
说说IUnitOfWork~我的IUnitOfWork+Repository架构
这个系统的文章在写完这篇后将拉下眉目,一共5讲的IUnitOfWork带给我们的是性
能,原子化操作,等多方法的改进,下面我把我的IUnitOfWork+Repository模式大体的说一下,并代上核心代码:底层接口UnitOfWork.Data.Core
能,原子化操作,等多方法的改进,下面我把我的IUnitOfWork+Repository模式大
体的说一下,并代上核心代码:
底层接口UnitOfWork.Data.Core
这是一个接口规范的项目层,它由CURD操作规范和UnitOfWork规范组成
namespaceUnitOfWork.Data.Core
{
///summary
///工作单元
///提供一个保存方法,它可以对调用层公开,为了减少连库次数
////summarypublicinterfaceIUnitOfWork
{
///summary
///将操作提交到数据库,
////summaryvoidSave();
///summary
namespace
namespaceUnitOfWork.Data.Core
{
publicinterfaceIRepositoryTEntity
///是否不提交到数据库,这只是在具体的repository类中的SaveChanges方法里用到的
///默认为false,即默认为提交到数据库
////summary
///returns/returnsboolIsNotSubmit{get;set;}
}
///summary
///工作单元
///对泛型类型的支持
////summary
///typeparamname=T/typeparampublicinterfaceIUnitOfWorkT:IUnitOfWorkwhereT:class{}
}
whereTEntity:class
{
///summary
///添加实体并提交到数据服务器
////summary
///paramname=itemItemtoaddtorepository/paramvoidInsert(TEntityitem);
///summary
///移除实体并提交到数据服务器
///如果表存在约束,需要先删除子表信息
////summary
///paramname=itemItemtodelete/paramvoidDelete(TEntityitem);
///summary
///修改实体并提交到数据服务器
////summary
///paramname=item/paramvoidUpdate(TEntityitem);
///summary
///Getallelementsoftype{T}inrepository
////summary
///returnsListofselectedelements/returnsIQueryableTEntityGetModel();
///summary
///根据主键得到实体
////summary
///paramname=id/param
///returns/returnsTEntityFind(paramsobject[]id);
}
}
namespaceUnitOfWork.Data.Core
{
///summary
///扩展的Repository操作规范
////summarypublicinterfaceIExtensionRepositoryTEntitywhereTEntity:class
{
///summary
///添加集合
////summary
///paramname=item/param
voidInsert(IEnumerableTEntityitem);
///summary
///修改集合
////summary
///paramname=item/param
voidUpdate(IEnumerableTEntityitem);
///summary
///删除集合
////summary
///paramname=item/param
voidDelete(IEnumerableTEntityitem);
///summary
///扩展更新方法,只对EF支持
////summary
///paramname=entity/param
voidUpdate(System.Linq.E
原创力文档


文档评论(0)