代码之家  ›  专栏  ›  技术社区  ›  DavidA

通用数据库Linq

  •  1
  • DavidA  · 技术社区  · 16 年前

      public void getPeople(Expression<Func<tblPeople, bool>> filter, Action<List<tblPeople>> callback)
                {
                    var query = from People in sdContext.tblPeople.Where(filter)
                                select People;
    
    
                    var DSQuery = (DataServiceQuery<tblPeople>)query;
                    DSQuery.BeginExecute(result =>
                    {
                        callback(DSQuery.EndExecute(result).ToList<tblPeople>());
    
                    }, null);
                }
    

    我现在真正想做的是编写一个更通用的方法,将tblPeople抽象为一个参数。这样我就可以为所有调用使用单行方法,至少是那些提供列表的方法!我该如何处理这个问题并构建:

     public void getTable<T>(Expression<Func<T, bool>> filter, Action<List<T>> callback)
                {
                    var query = from DB in sdContext.T.Where(filter)
                                select DB;
    
    
                    var DSQuery = (DataServiceQuery<T>)query;
                    DSQuery.BeginExecute(result =>
                    {
                        callback(DSQuery.EndExecute(result).ToList<T>());
    
                    }, null);
                }
    

    1 回复  |  直到 16 年前
        1
  •  0
  •   Indeed is Trash    16 年前

    这可能有用。。。

    public void getTable<T>(Expression<Func<T, bool>> filter, Action<List<T>> callback)
    {
        var query = from DB in sdContext.GetTable<T>.Where(filter)
                    select DB;
    
    
        var DSQuery = (DataServiceQuery<T>)query;
        DSQuery.BeginExecute(result =>
        {
            callback(DSQuery.EndExecute(result).ToList<T>());
        }, null);
    }