zoukankan      html  css  js  c++  java
  • IEnumerable<T> list注意事项

    方法返回的时候 要设置用list会比较稳妥。

    遇到的问题:

    private IDbConnection GetConnection()
    {
    var dataSettingsManager = new DataSettingsManager();
    var dataProviderSettings = dataSettingsManager.LoadSettings();
    _con = new SqlConnection(dataProviderSettings.DataConnectionString);
    if (_con.State != ConnectionState.Open)
    {
    _con.Open();
    }
    return _con;
    }

    /// <summary>
    /// 分页  使用 DapperExtensions
    /// </summary>
    /// <param name="pageNum"></param>
    /// <param name="pageSize"></param>
    /// <param name="outTotal"></param>
    /// <param name="expression"></param>
    /// <param name="sortList"></param>
    /// <returns></returns>
    public IEnumerable<T> GetPageData(int pageNum, int pageSize, out int outTotal,
    Expression<Func<T, bool>> expression = null, object sortList = null, IDbTransaction dbTransaction = null, int commandTimeout = 10)
    {
    IEnumerable<T> entities = null;
    using (var con = GetConnection())
    {
    IPredicateGroup predicate = DapperLinqBuilder<T>.FromExpression(expression); //转换Linq表达式
    IList<ISort> sort = SortConvert(sortList);//转换排序接口
    if (sort == null || sort.Count == 0)
    {
    sort.Add(new Sort { PropertyName = "ID", Ascending = false });
    //sort = new List<ISort>();
    }
    entities = con.GetPage<T>(predicate, sort, pageNum - 1, pageSize, dbTransaction, commandTimeout);
      
    outTotal = con.Count<T>(predicate);
    con.Close();
    return entities.ToList();;
    }
    }

    重点在这边

    entities = con.GetPage<T>(predicate, sort, pageNum - 1, pageSize, dbTransaction, commandTimeout);

    如果直接返回的话 里面的con状态已经被释放,所以会报错 con数据连接未初始化。

    只要在后面加一个 tolist() 这样把结果先返回存到内存。

    折腾了一天才发现这个问题

     
  • 相关阅读:
    DataTable 类(二)处理表中的数据
    .NET中的正则表达式
    DataTable 类(一)表结果操作
    DataGridView(2)数据操作
    DataGridView(一)
    VS2008中配置 Windows SDK v7
    TabControl
    .NET中的正则表达式 (一)Regex 类
    db2的count()函数和sum()函数的用法
    显示原始字符串
  • 原文地址:https://www.cnblogs.com/zxs-onestar/p/9238767.html
Copyright © 2011-2022 走看看