linq加入代码不起作用

时间:2013-11-27 14:07:25

标签: c# linq

我在tblMaterials中的 2 记录和tblMaterialTenderGroups中的记录中 但是,当我将数据提取到gridview时,它会向我显示两条记录,并且连接不起作用

    public List<tblMaterial> ShowPresentMaterialInGroup()
    {
        List<tblMaterial> q = (from i in dbconnect.tblMaterials.AsEnumerable()
                               join b in dbconnect.tblMaterialTenderGroups on i.materialId equals  b.materialId
                               where b.MaterialGroupId == _materialGroupId
                               select new tblMaterial()
                               {
                                   existAmout = i.existAmout,
                                   materialId = i.materialId,
                                   name = i.name,
                                   needAmount = i.needAmount,
                                   requestAmount = i.requestAmount,
                                   unit = i.unit,
                                   requestId = i.requestId
                               }).ToList();
        return q;
    } 

1 个答案:

答案 0 :(得分:1)

你能试试吗

List<tblMaterial> q = from i in dbconnect.tblMaterials
            join b in dbconnect.tblMaterialTenderGroups on i.materialId equals  b.materialId 
            select new { existAmout = i.existAmout,
                         materialId = i.materialId,
                         name = i.name,
                         needAmount = i.needAmount,
                         requestAmount = i.requestAmount,
                         unit = i.unit,
                         requestId = i.requestId}.ToList();

可能正在使用返回两条记录。
我读了一些here

  

使用AsEnumerable将中断查询并执行“外部”   作为linq-to-objects而不是Linq-to-SQL。实际上,你是   为你的两个表运行“select * from ...”,然后执行   连接,where子句过滤,排序和投影客户端。