namespace Data.TEST
{
    /// <summary>
    /// 数据操作基类
    /// </summary>
    public abstract class TESTRepositoryBase
    {
        /// <summary>
        /// 数据库基类
        /// </summary>
        protected Entity.TEST.LinqTESTDataContext _db = (Entity.TEST.LinqTESTDataContext)DbFactory.Intance("TEST", System.Threading.Thread.CurrentThread);
        /// <summary>
        /// 统一提交动作
        /// </summary>
        protected virtual void SubmitChanges()
        {
            ChangeSet cSet = _db.GetChangeSet();
            if (cSet.Inserts.Count > 0
                || cSet.Updates.Count > 0
                || cSet.Deletes.Count > 0)
            {
                try
                {
                    _db.SubmitChanges(System.Data.Linq.ConflictMode.ContinueOnConflict);
                }
                catch (System.Data.Linq.ChangeConflictException ex)
                {
                    foreach (System.Data.Linq.ObjectChangeConflict occ in _db.ChangeConflicts)
                    {
                        // 使用当前数据库中的值,覆盖Linq缓存中实体对象的值  
                        occ.Resolve(System.Data.Linq.RefreshMode.OverwriteCurrentValues);
                        // 使用Linq缓存中实体对象的值,覆盖当前数据库中的值  
                        occ.Resolve(System.Data.Linq.RefreshMode.KeepCurrentValues);
                        // 只更新实体对象中改变的字段的值,其他的保留不变  
                        occ.Resolve(System.Data.Linq.RefreshMode.KeepChanges);
                    }
                    _db.SubmitChanges();
                }
            }
        }
    }

}

本文转自博客园张占岭(仓储大叔)的博客,原文链接:MVC+LINQToSQL的Repository模式之(二)数据基类,如需转载请自行联系原博主。

MVC+LINQToSQL的Repository模式之(二)数据基类相关推荐

  1. MVC中业务层是否应该有个基类?它有什么作用?

    项目架构N层结构中,业务层无疑是比较灵活多变,与数据库层紧密联系,又同时约束WEB层的中间层,它是否应该有个基类,而如果有,那它的作用又是什么呢? 这就是今天要说的. 首先,我认为每个层都应该有个基类 ...

  2. C++ day22 继承(二)基类指针数组通过虚方法实现智能的多态

    继承一共有三种: 公有继承 私有继承 保护继承 文章目录 公有继承 基类和派生类的关系 is-a(用公有继承表示"是一种"的关系) has-a uses-a is-like-a i ...

  3. 跟我学MVC系列(Repository模式、LINQ、EF、IOC框架Castle、JQuery、AJAX)(六)(应用IOC模式)...

    前五篇已经把Models 介绍完啦,从今天开始我们要介绍"V"&"C"啦.现在我们还是从MVC的定义说起,其实MVC最大的好处就是M层(脱离V与C)可以 ...

  4. LINQTOSQL作为底层ORM框架后,我们的数据基类就变成了这个样子

    1: namespace Data 2: { 3: /// <summary> 4: /// OA数据库基类 5: /// </summary> 6: public abstr ...

  5. 2017-4-20实体类,数据访问类.字符串攻击.防攻击

    程序分三层:界面层.业务逻辑层.数据访问层 这里主要操作的是数据访问层,数据访问层又分为: 1.实体类 2.数据访问类 存放位置:APP_Code文件中 一.实体类 最简单的封装 把数据库的表名变成类 ...

  6. MVC架构中的Repository模式 个人理解

    关于MVC架构中的Repository模式 个人理解:Repository是一个独立的层,介于领域层与数据映射层(数据访问层)之间.它的存在让领域层感觉不到数据访问层的存在,它提供一个类似集合的接口提 ...

  7. Repository模式

    近来发现很多ASP.NET MVC的例子中都使用了Repository模式,比如Oxite,ScottGu最近发布的免费的ASP.NET MVC教程都使用了该模式.就简单看了下. 在<企业架构模 ...

  8. Repository模式与UnitOfWorks模式的运用

    软件开发就像是一个江湖,而设计模式就是一本高深的秘籍每读一次.用一次.想一次都能得到新的领悟,让我们的设计技能有所提高.开始时我们可能会"为了模式而模式",让代码变得乱78糟甚至难 ...

  9. Repository模式(转载)

    近来发现很多ASP.NET MVC的例子中都使用了Repository模式,比如Oxite,ScottGu最近发布的免费的ASP.NET MVC教程都使用了该模式.就简单看了下. 在<企业架构模 ...

最新文章

  1. mysql safe 关闭_新手请教,mysqld经常自动关闭是什么原因?-问答-阿里云开发者社区-阿里云...
  2. 智能应答系统php源码,佳蓝智能应答系统 php版下载|佳蓝智能应答系统 php版官方下载-太平洋下载中心...
  3. Mozilla 准备让“合格” Linux 用户测试 WebRender
  4. Golang 并发Groutine实例解读(一)
  5. Linux安装mysql学习
  6. Matlab | Matlab从入门到放弃(14)——基于Matlab的多变量数据分析
  7. linux java 安装配置_类Linux环境安装jdk1.8及环境变量配置详解
  8. html 流程控制,HTML5独家分享:原生JS学习笔记2——程序流程控制
  9. 华为哪款手表支持鸿蒙,华为Watch 3最早或于5月发布 采用鸿蒙系统并支持eSIM
  10. C语言版RPG角色生成器
  11. WPS中插入“公式”后行距不正常的解决办法
  12. Chat Top10 | 实战:参考牛顿冷却定律优化最热问题的排序
  13. 中国虚拟人哪家强?沙利文、IDC:小冰百度商汤位列第一梯队
  14. OSS视频上传后直接播放只有声音没有画面
  15. java代码质量 圈复杂度,代码圈复杂度(Cyclomatic Complexity,CC)和Oclint工具 介绍...
  16. 看苹果Metal支持c++开发
  17. CRM系统在销售中的应用
  18. npm run dev vuedemo@1.0.0 dev /www/web/yii2_fecshop_docker/app/fecshop/vue_fecshop_appserver
  19. Ubuntu 怎么卸载自带的国际版 firefox,安装中国版的 firefox
  20. wordpress更新php,wordpress怎么更新

热门文章

  1. 译-使用Scroll Snapping实现CSS控制页面滚动
  2. python与开源_Github上Top20 Python与机器学习开源项目推荐
  3. [Ext JS6]Ext.Template
  4. CI -持续集成及相关概念
  5. c语言 指针函数pdf,C语言指针经验总结(经典).pdf
  6. strchr和strstr函数
  7. poj3254(状压dp入门第一道题,很详细)
  8. Spring Cloud Stream与RabbitMQ 死信队列
  9. vue.3.0 dom赋值_Vue 3.0 快速入门
  10. html dom对象简写,HTML DOM 对象