zoukankan      html  css  js  c++  java
  • LINQ踩坑记录

    1、join into 解析为groupjoin(组连接),但是直接对iqueryable做组连接报错,比对了一下之前一个项目中似乎是可以的,是不是环境不一样的原因呢,有待考证,当前的解决办法如下

    //只能通过异步的方式取LIST再groupjoin不然不成功,

    //控制器在调用这个异步方法时也要返回 Task或者await
    var inorders = await context.t_inorders.AsNoTracking().ToListAsync();
    var inorderdetails = await context.t_inorderdetais.AsNoTracking().ToListAsync();
    var products = await context.t_products.AsNoTracking().ToListAsync();


    var queryGP = from inorder in inorders
    where inorder.state == 1 && inorder.orderstate < 4 && inorder.orderstate > 1
    join detail_n in
    (from detail in inorderdetails
    join product in products on detail.productid equals product.id
    select new
    {
    detail.productid,
    detail.orderid,
    detail.alreadybindcount,
    detail.alreadycount,
    detail.productnum,
    product.productname

    }) on inorder.id equals detail_n.orderid into details
    select new
    {
    inorder.ordercode,
    inorder.tripcode,
    inorder.suppliercode,
    inorder.suppliername,
    details
    };
    var obj = queryGP.ToList();

    2、如果是要借助join into实现左联接的功能却不受影响,是因为没有被解析为groupjoin的原因吗?


    var A = context.t_inorders.AsNoTracking<t_inorder>();
    var B = context.t_inorderdetais.AsNoTracking<t_inorderdetai>();
    var C = context.t_products.AsNoTracking<t_product>();

    var queryGP1 = from inorder in A
    where inorder.state == 1 && inorder.orderstate < 4 && inorder.orderstate > 1
    join detail_n in
    (from detail in B
    join product in C on detail.productid equals product.id
    select new
    {
    detail.productid,
    detail.orderid,
    detail.alreadybindcount,
    detail.alreadycount,
    detail.productnum,
    product.productname

    }) on inorder.id equals detail_n.orderid into details
    from d1 in details.DefaultIfEmpty()
    select new
    {
    inorder.ordercode,
    inorder.tripcode,
    inorder.suppliercode,
    inorder.suppliername
    };
    var obj1 = queryGP1.ToList();

  • 相关阅读:
    SCI论文写作中一些常见的用词不当
    英语医学论文SCI写作/医学翻译中的常见错误
    SCI写作的20例常见错误集锦
    sci写作结构总结二——整体结构逻辑
    关于 mysql 优化 -------复合索引的一些见解
    win10系统没有Hyper-v解决办法
    win10 docker 安装redis activemq,mysql等。
    win10环境下的docker 设置镜像
    win10 安装docker
    jquery瀑布流
  • 原文地址:https://www.cnblogs.com/yzmn/p/14132555.html
Copyright © 2011-2022 走看看