【问题标题】:How to write sub query using linq in mvc5?如何在 mvc5 中使用 linq 编写子查询?
【发布时间】:2017-05-11 23:25:34
【问题描述】:

我正在我的应用程序中使用 linq 编写子查询。我在 sql server 中编写了我的 sql 子查询。当我在 SQL Server 中执行此查询时,结果完美,sql 查询将像

我的 SQL 服务器:

 select Row_Number() Over(OrderBy Mmname) as Sno,Mmname,Mmcardno,Mmdob,MmEmail,(Select SUM(MSSRNETAMT) from MSCAS where MSCAS.MSSFORMNO = MSMEM.MmCardno and MSCAS.MSSRBILLDT between '01/01/2016' and '30/12/2016') Billopen,(Select SUM(MSSRNETAMT) from MSCAS where MSCAS.MSSFORMNO = MSMEM.MmCardno and MSCAS.MSSRBILLDT between '01/01/2016' and '30/12/2016') BillForm,Mmredpv,Msdval,Mmcontact,Mmdate,Mmaddr,MmCuser,MmCuserdt,Mmusercd,
  Mmuser,Mmuserdt,Cast(Mmcntrn as int ) as Mmcntr from MSMEM inner join MSSCHEDET   on MSMEM.Mschuid = MSSCHEDET.MSDID

我的 linq 查询

             Var query = (from Ms in db.msmems join Mss in db. Msschedet on Ms. Mechuid equals mss. MSDID select new 
         {
            name = Ms. Mmname, 
           Billopen = (from mc in db. MSCAS where Ms.      Mmcardno = mc. Mssformno) select mc.MSSRNETAMT);
     }):

这只是我尝试过,但我在开单时遇到错误,这是我收到错误的金额

这是我的 SQL 查询。我试图在 linq 中转换这个 sql 查询。但是我失败了很多次,我得到了一个错误。

【问题讨论】:

  • 你有什么 Linq 代码,你遇到了什么错误?

标签: sql linq asp.net-mvc-5


【解决方案1】:

你能试试这样的吗?在没有更好地理解您的表结构的情况下,我尝试优化它。您是否没有理由不能对您的 MSCAS 表进行第二次联接?

var query = (from Ms in db.msmems
             join Mss in db.Msschedet on Ms.Mechuid equals mss.MSDID
             join Mc in db.MSCAS on Ms.Mmcardno equals Mc.Mssformno
             select new { 
                         name = Ms.Mmname, 
                         Billopen = Mc.where(x=>x.MSSRBILLDT >= '01-01-2016' and x.MSSRBILLDT <= '12-30-2016').Sum(z=>z.MSSRNETAMT)
                        }
            );

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-13
    • 1970-01-01
    • 2017-11-23
    • 2013-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多