将IRepository接口进行抽象,使它成为数据基类的一个对象,这样每个子类都可以有自己的最基础的CURD了...

  /// <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();
                }
            }
        }

        /// <summary>
        /// 数据统一接口方法
        /// 子类可以通过本方法,对指定类型进行CURD操作
        /// </summary>
        /// <typeparam name="TEntity"></typeparam>
        /// <returns></returns>
        protected virtual IRepository<TEntity> Repository<TEntity>() where TEntity : class,IEntity
        {
            return new Repository<TEntity>();
        }

    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
《代码库》1.0 主要功能简介 《代码库》是专为程序员设计的一个源码管理工具。她可以使编程变得更为有趣,降低您的重复劳动;她虽然不能立即提高您的编程技能,但能够让您在开发软件的过程中节省时间与金钱。在现代软件开发过程中,个人英雄式的完成一个从最底层开发的软件是极为困难的,因为您得为您的程序准备一切,但您愿意重写您以前写过的所有子程序吗。而实际上在开发的同时,可以将一些好的代码片断、算法加以摘录,并保存在《代码库》中,可以随时查阅、编辑您所收集的知识,并将能利用的代码加入您的程序中,提高开发速度。 《代码库》是一个基于文本格式的工具,采用树型目录进行的知识分类管理,您可以在她的帮助下清晰、准确的管理您收集的优秀代码。《代码库》使用自身的库数据结构, 并支持库形式的导出、导入,也支持文本文件的导出、导入,支持Windows粘贴板复制(支持TXT、RTF格式)、粘贴,功能丰富的编辑:支持Undo操作、显示行号、调整tab字符数、增加/减少缩进、设置当次缩进的字符数、换行显示,支持语法高亮显示、编辑修改(目前版本支持九种语法标识:Plain Text, Object Pascal, ANSI C, Java, Visual Basic, eMail, IniFile, Html/JS/VBS , PL/SQL),支持功能强大的全库查找和搜索功能,提供打印及打印预览功能。《代码库》是专门为程序员进行设计的,因此我们知道什么是您最需要的,也会最好的东西带给您。 感谢David Brock的控件(TSyntaxMemo v3.00.36)以及Jordan Russell的控件(Toolbar2000 v3.0)。另感谢Wzy兄帮忙进行测试! 另外您可以随意复制、散发本软件,但是不得对本软件作任何修改。作者保留《代码库》的版权。本人将不定期的更新本软件,最新版的《代码库》请到www.csdn.net的共享软件栏目中寻找。 建议运行环境Windows98、Win2000、WinXP,内存64M以上。 如果您在使用中发现有什么bug或有什么建议,请及时通知我iRepository@citiz.net,本人将尽快回复。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值