当前位置:编程学习 > C#/ASP.NET >>

Entity Framework下的连表查询问题

我有一个报价单表Order和设备表Equipment.两个表之间是1对0或者1对n的关系。
Order有如下字段: OrderId,Customername等等
Equipment有如下字段:EId,OrderId,Price

我要得到的结果列表是:(一个设备显示一行记录)
订单编号(OrderID)    客户名称(Customername)    设备编号(EId)     设备价格(Price)


需要注意的是有可能Order里面有数据,但关联的Equiment没有数据,那么上面显示记录的时候,设备编号和设备价格都为空。

给分不多,望高手能解答 --------------------编程问答-------------------- 顶一个      分 --------------------编程问答--------------------

            using (DataClassesDataContext db = new DataClassesDataContext())
            {
                var result = from u in db.Order
                             join n in db.Equipment on u.OrderId equals n.OrderId into temp
                             from m in temp.DefaultIfEmpty()
                             select new
                             {
                                 OrderID = u.OrderId,
                                 Customername = u.Customername,
                                 EId = m.EId == null ? "" : m.EId.ToString(),
                                 Price = m.Price == null ? "" : m.Price.ToString()
                             };
            }
--------------------编程问答-------------------- 不好意思,修改一下:

                var result = from u in db.Order
                             join n in db.Equipment on u.OrderId equals n.OrderId into temp
                             from m in temp.DefaultIfEmpty()
                             select new
                             {
                                 OrderID = u.OrderId,
                                 Customername = u.Customername,
                                 EId = m == null ? "" : m.EId.ToString(),
                                 Price = m == null ? 0 : m.Price
                             };
--------------------编程问答-------------------- 楼上正确,其实就是left join,当然left join在linq的语法表现形式很多

具体形式,可以参考这个资料
http://www.cnblogs.com/lyj/archive/2008/01/24/1051495.html --------------------编程问答-------------------- 楼上,Good --------------------编程问答--------------------  你们发的不亦乐乎  不见楼主   --------------------编程问答-------------------- 你可以去查一下Entity Framework  的延迟加载的问题
补充:.NET技术 ,  .NET Framework
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,