none
linq 查询后.ToList() 方法,怎么传递呢? RRS feed

  • 问题

  •  using (DataClassesDataContext myData = new DataClassesDataContext())
                    {
                      
                        var allSearch1 = (myData.ExecuteQuery<CASInfo>(
                      @"SELECT TOP 30 * FROM CASInfo WHERE CONTAINS(英文名称, '" + myqname + "') ORDER BY LEN(英文名称);")).ToList();
                     GetListView(allSearch);
    }

     protected void GetListView(List<object> linqresult)
        {
            System.Linq.Queryable;
            GridView1.DataSource = allSearchok;
            GridView1.DataBind();
        }

    我不知道List<object> 的类型怎么传递呢?
    2009年11月18日 3:43

答案

  • 你好,
    请这样定义方法试一下:
    protected void GetListView(IEnumerable linqresult){
    //code
    }

    Please remember to mark the replies as answers if they help and unmark them if they provide no help. Welcome to the All-In-One Code Framework http://cfx.codeplex.com/! If you have any feedback, please tell us.
    • 已标记为答案 wanguan2000 2009年11月23日 12:01
    2009年11月23日 7:54
    版主

全部回复

  • 没有人知道吗?
    2009年11月18日 5:19
  • 没看明白您的问题. 这里需要传递什么? 直接call不行吗?
    另外,你的query为什么不用类似于这样:
     using (DataClassesDataContext myData = new DataClassesDataContext())
                    {
                      
                        var allSearch1 = (myData.CASInfo.Where (p => p.英文名称.Contains(myqname)).OrderBy(p => p.英文名称.Length).Take(30).ToList();
    ...
    }

    2009年11月18日 7:42
  • 用vs断点不就看出来类型了吗
    2009年11月18日 8:14
  • 因为要用全文检索,linq不支持全文检索的。所以用SELECT TOP 30 * FROM CASInfo WHERE CONTAINS

    因为我有多种情况下的查询,就是好多种:
     using (DataClassesDataContext myData = new DataClassesDataContext())
                    {
                      
                        var allSearch1 = (myData.ExecuteQuery<CASInfo>(
                      @"SELECT TOP 30 * FROM CASInfo WHERE CONTAINS(英文名称, '" + myqname + "') ORDER BY LEN(英文名称);")).ToList();
                     GetListView(allSearch);
    }

    所以我想最后统一到一个方法里处理:,把查询的结果List传到GetListView 方法里处理。
     protected void GetListView(List<object> linqresult)
        {
           
            GridView1.DataSource = allSearchok;
            GridView1.DataBind();
        }
    2009年11月18日 10:39
  • 你这个方案 还不如用ado.net解决的
    linq大多方法都是推迟加载的
    2009年11月18日 13:20
  • 你好,
    请这样定义方法试一下:
    protected void GetListView(IEnumerable linqresult){
    //code
    }

    Please remember to mark the replies as answers if they help and unmark them if they provide no help. Welcome to the All-In-One Code Framework http://cfx.codeplex.com/! If you have any feedback, please tell us.
    • 已标记为答案 wanguan2000 2009年11月23日 12:01
    2009年11月23日 7:54
    版主
  • 都是 eneityObject阿。
    成为 Microsoft V Dash了。。。 欢迎各位前辈同事在OCS加我
    2009年11月23日 8:30