• 使用扩展方法对Linq to SQl Classes扩展,使其在增删改时返回结果


      我新建了一个Linq to SQl Classes项,命名为ETC.dbml。系统会默认生成ETCDataContext。

      系统在执行ETCDataContext.SubmitChanges()时返回是空值,这样用户就无法知道执行结果到底是成功还是失败。所以决定用扩展方法对ETCDataContext作个扩展。

       代码如下,此代码中包含DataAccessComponent类,此类主要作配置ConnectionString。其它所有涉及到DataContext操作的类都继承自此类,并使用此类实例化DataContext。此类的下边的静态Extensions类是我对ETCDataContext扩展方法。

      注意,扩展方法要求是静态类,传入的参数是扩展的对象,且在参数前加this关键字。

        public class DataAccessComponent
        {
            
    /// <summary>
            
    /// Get connection string of databse
            
    /// </summary>
            protected ETCDataContext EtcDataContext
            {
                
    get
                {
                    
    return new ETCDataContext(ConfigurationManager.ConnectionStrings["etcConnectionString"].ConnectionString);
                }
            }
        }

        
    /// <summary>
        
    /// 扩展方法类
        
    /// </summary>
        public static class Extensions
        {
            
    /// <summary>
            
    /// 更新并返回结果
            
    /// </summary>
            
    /// <param name="etcDataContext"></param>
            
    /// <returns>true:正确;false:错误</returns>
            public static bool SubmitChangesWithResult(this ETCDataContext etcDataContext)
            {
                
    bool result = false;
                
    try
                {
                    etcDataContext.SubmitChanges();
                    result = true;
                }
                
    catch (Exception ex)
                {
                    result = false;
                }
                
    return
     result;
            }

        }


  • 相关阅读:
    CCF模拟题 窗口
    CSUOJ 1541 There is No Alternative
    MySQL数据库优化的八种方式(经典必看)
    PHP面向对象-----魔术方法
    PHP面向对象(OOP)----分页类
    2017最新PHP初级经典面试题目汇总(下篇)
    2017最新PHP经典面试题目汇总(上篇)
    原型模式
    适配器模式
    策略模式
  • 原文地址:https://www.cnblogs.com/scottckt/p/1894624.html
Copyright © 2020-2023  润新知