C# 如何为此SQL查询编写Lambda表达式?

C# 如何为此SQL查询编写Lambda表达式?,c#,lambda,C#,Lambda,我有以下SQL查询 Select cLedgerName,dDateFrom,cPeriodType,nPeriodFrom,nPeriodTo from sys_Account_Ledger a,sys_Log_Deposits_Interest_Master b where a.cGLCode=b.cGLCode and b.dDateFrom='08-11-2012' and b.cPeriodType='Days' 我想用Lambda表达式编写这个查询。这就是我遇

我有以下
SQL查询

   Select cLedgerName,dDateFrom,cPeriodType,nPeriodFrom,nPeriodTo
   from sys_Account_Ledger a,sys_Log_Deposits_Interest_Master b
   where a.cGLCode=b.cGLCode and b.dDateFrom='08-11-2012' and b.cPeriodType='Days'  
我想用
Lambda表达式编写这个
查询
。这就是我遇到的问题

public IList<ListViewData> GetDepositsListViewData(string glCode, string effectDate, string periodType)
        {
            using (var db = new DataClasses1DataContext())
            {
                var data=db.sys_Account_Ledgers.Join(db.sys_Log_Deposits_Interest_Masters,
                    ledger=>ledger.cGLCode,
                    deposits=>deposits.cGLCode,
                    (ledger,deposits)=>new {db.sys_Account_Ledgers =ledger,db.sys_Log_Deposits_Interest_Masters =deposits}) 
            }
        }

有人能帮我解决一下lambda表达式的问题吗?

谢谢你的回答,我会尝试一下并让你知道。我尝试过了,但我只能获取LedgerName属性,其他属性为空。@freebird,请尝试使用SQL Server profiler查看发送到数据库的查询是什么。接下来,检查您是否有正确的属性分配,并且返回的值确实不为null或空。感谢您的回答,我将尝试此操作并让您知道。我只能提取LedgerName属性,其他属性似乎为空。
var result = dataContext.SysAccountLedger
                        .Join(dataContext.SysLogDepositsInterestMaster,
                             a => a.cGlCode,
                             b => b.cGlCode,
                             (a, b) => new ListViewData
                             {
                                 LedgerName = a.LedgerName,
                                 DateFrom = b.DateFrom,
                                 PeriodType = b.PeriodType
                                 // other properties
                             })
                         .Where(item => item.DateFrom = Convert.ToDateTime("08-11-2012") && 
                                            item.PeriodType == "Days")
                         .ToList();
var result = dataContext.SysAccountLedger
                        .Join(dataContext.SysLogDepositsInterestMaster,
                             a => a.cGlCode,
                             b => b.cGlCode,
                             (a, b) => new ListViewData
                             {
                                 LedgerName = a.LedgerName,
                                 DateFrom = b.DateFrom,
                                 PeriodType = b.PeriodType
                                 // other properties
                             })
                         .Where(item => item.DateFrom = Convert.ToDateTime("08-11-2012") && 
                                            item.PeriodType == "Days")
                         .ToList();
//Direct translation into Linq:

    var query = from a in db.sys_Account_Ledger
        join b in db.sys_Log_Deposits_Interest_Master on a.cGLCode equals b.cGLCode
        where b.dDateFrom == Convert.ToDateTime("08-11-2012") && b.cPeriodType == "Days"
        select new { a, b };

//Lambda of this:

var query = db.sys_AccountLedger
    .Join(db.sys_Log_Deposits_Interest_Master, 
        a => a.cGLCode, 
        b => b.cGLCode, 
        (a, b) => new {a , b})
    .Where(w => w.dDateFrom == Convert.ToDateTime("08-11-2012") && w.cPeriodType == "Days");