分类目录

链接

2011年 11月
 123456
78910111213
14151617181920
21222324252627
282930  

近期文章

热门标签

新人福利,免费薅羊毛

现在位置:    首页 > .NET > 正文
Linq to entity多表查询如何返回查询结果
.NET 评论(5) 阅读(14,841)
1、定义一个新的类别,类别包含了多个表的属性
  1. public class AB
  2.    {
  3.       public int a_id;
  4.       public string a_name;
  5.       public int b_id;
  6.       public string b_name;      
  7.    }
2、使用视图,和上面基本一样
    其实就是使用SQL语句
    示例:
    select a.id,a.name,b.id ,b.name from a join b on a.id=b.id
3、使用储存过程,直接返回结果集
   同上。
4、使用匿名对像,返回IQueryable,
例:
  1.  public IQueryable GetAllList()
  2.       {
  3.                 var query = from a in tb_a join b in tb_b on a.id equels b.id select new {a.id,b.id};
  4.                  return query;
  5.       }

5、使用LINQ连接查询
  1.       List<tb_a> aList=aBLL.GetList();
  2.        List<tb_b> bList=bBLL.GetList();
  3.        var query = from a in aListjoin b in bListon a.id equels b.id select new {a.id,b.id};
  4.         dgvList.Datasource=query.ToList();
6、使用循环
  1.  List<tb_a> aList=aBLL.GetList();
  2.        List<tb_b> bList=bBLL.GetList();
  3.       eg:绑定DataGridView
  4.        foreach(tb_a  a in aList)
  5.        {
  6.                    Object[] row={a.id,b.id,aList.FirstOrDefault(f=>f.b_id=a.id).name}
  7.                    DataGridView1.Rows.Add(row);
  8.         }

7.使用System.Func委托 (参考:Returning var from a method in C# 3.0)

数据层:

  1. public IEnumerable<T> GetQuery<T>(Func<DB.Repair, DB.Operator, T> func)
  2. { 
  3.  
  4. var query = from r in db.Repair
  5. join o in db.Operator on r.fchrOperatorID equals o.fchrOperatorID
  6. orderby r.fchrReceiveDate descending
  7. select func(r, o);
  8.  
  9. return query;
  10.  
  11. }

业务逻辑层:

 

  1. var query = repairBLL.GetQuery((repair, oper) => new
  2. {
  3.         repair.fchrRepairID,
  4.        repair.fchrRepairCode,
  5.        oper.fchrName,
  6.        repair.fchrReceiveDate
  7.  
  8. }

这样返回的结果在业务逻辑层里仍然是真正的匿名类型,可以直接使用了。

 

 

---------------------------------------------------------------------------------------------

不断更新中,如果大家有什么好的方法,在留言里写下,我会定期加上来!谢谢!

 

^_^

============ 欢迎各位老板打赏~ ===========

本文版权归Bruce's Blog所有,转载引用请完整注明以下信息:
本文作者:Bruce
本文地址:Linq to entity多表查询如何返回查询结果 | Bruce's Blog

Linq to entity多表查询如何返回查询结果:目前有5 条留言

  1. longle.cnblogs.com : 2011年12月08日下午 10:31 回复

    灰常感谢!!

  2. iteleven : 2011年12月26日下午 4:38 回复

    4、使用匿名对像,返回IQueryable,
    ,返回的两个列,为什么会错呀

    • 数据库之家 : 2011年12月26日下午 7:19 回复

      什么错?

    • iteleven : 2011年12月29日上午 11:27 回复

      是我写错了,不好意思,是对的,谢谢。

      • 数据库之家 : 2011年12月29日上午 11:28 回复

        不谢,互相交流

发表评论

留言无头像?