【问题标题】:How do i format a date in Linq To Entities如何在 Linq To Entity 中格式化日期
【发布时间】:2013-08-06 00:31:59
【问题描述】:

我需要在我的 LINQ To Entities 查询中将日期时间格式化为短日期字符串。我尝试了以下方法,但它不起作用-

aryData =
(
    From cert In db.LWCerts _
    Select New With { _
       .ToBeProcessedDate = cert.ToBeProcessedDate.ToShortDateString 
    }
).ToArray()

我怎样才能将日期作为短日期字符串(“ie: 08/05/2013”​​)返回?

编辑这是整个 linq 查询-

             aryData =
        (From lwl In db.LWCertLoans _
        Join c In db.Loans _
   On c.LoanNum Equals lwl.LoanNum _
   Join p In db.LWCertColls _
   On lwl.CertID Equals p.CertID _
   Join r In db.RespCntrs _
   On r.BranchNum Equals c.BranchNum _
   Join cert In db.LWCerts.AsEnumerable() _
   On cert.LWCertID Equals lwl.CertID _
   Where lwl.LoanNum = p.LoanNum _
   Select New With { _
       .ToBeProcessedDate = cert.ToBeProcessedDate, _
    .CertType = cert.CertType, _
    .CertCollID = p.CertCollID, _
    .CertificateID = p.CertID, _
    .LoanNumberTypeAndCurrencyCombined = c.LoanNum, _
    .LoanType = c.LoanType, _
    .CurrType = r.CurrType, _
    .CollanteralBalance = c.ColCurBal, _
    .SalesAdditions = p.Sales, _
    .CreditMemos = p.Credits, _
    .CashRemovals = p.NetCollect, _
    .NonDilutiveAdjustment = p.PlusAdj, _
    .Discounts = p.Discounts, _
    .NonARCash = p.NonARCash, _
    .DilutiveAdjustment = p.NegAdj, _
    .LWCertCollsComments = p.Comments, _
    .StatusCode = p.StatusCode, _
    .CertLoanID = lwl.CertLoanID, _
    .Modified = lwl.Modified, _
    .LoanNum = lwl.LoanNum, _
    .EffectiveDate = lwl.EffectiveDate, _
    .RepWireNumber = lwl.RepWireNumber, _
    .Advance = lwl.Advance, _
    .ModifiedDate = lwl.ModifiedDate, _
    .DDAAccountName = lwl.DDAAccountName, _
    .LWCertLoansComments = lwl.Comments, _
    .Comment = If(cert.CertType = 0, p.Comments, lwl.Comments)}).ToArray()

【问题讨论】:

    标签: linq linq-to-entities


    【解决方案1】:

    您应该使用AsEnumerable()ToString 从数据库移动到应用程序:

    aryData =
    (
        From cert In db.LWCerts.AsEnumerable() _
        Select New With { _
           .ToBeProcessedDate = cert.ToBeProcessedDate.ToShortDateString 
        }
    ).ToArray()
    

    这将从数据库中获取DateTime,然后在应用程序端对其进行格式化。

    【讨论】:

    • 我收到错误消息“'ToShortDateString' 不是 'Date?' 的成员”
    • 改用ToString("d")
    • 现在我得到一个不同的错误 - “LINQ to Entities 无法识别方法 'Char get_Chars(Int32)' 方法,并且此方法无法转换为存储表达式。”
    • 所以你根本没有使用AsEnumerable
    • 我在上面的编辑中发布了整个查询。我按照建议将 AsEnumerable 添加到 lwcerts 中。到目前为止,我还没有在课堂上使用过 AsEnumerable。我会错过导入吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-02
    • 2010-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-15
    相关资源
    最近更新 更多