【问题标题】:ADO.NET Entity Model and LINQ using JOINsADO.NET 实体模型和使用 JOIN 的 LINQ
【发布时间】:2018-11-23 06:38:34
【问题描述】:

我的查询:

using (var context = new consoleApp.JohnDoe_dbEntities())
        {
            var data= (from lo in context.tbl_loans
                         join doc in context.tbl_docinfo on lo.idDocInfo equals doc.idDocInfo
                         join insp in context.tbl_inspections on lo.idLoan equals insp.idLoan
                         where insp.StatusInspections == 3 && lo.idLoan == 5
                         select new
                         {
                             lo,
                             doc,
                             insp
                         });}

我想访问 tbl_idLoans、tbl_docinfo 和 tbl_inspections 示例中的每一列:“lo.CityName”。我不明白如何使用 LINQ 语法访问它们。当前的查询是正确的,除了 SELECT 部分之后,我不知道它是否在做我想要的,这让我可以访问所有三个表中条件适用的每一列。

谢谢。

【问题讨论】:

    标签: c# mysql linq join entity-framework-6


    【解决方案1】:

    select 语句中为您的表属性命名。通过这样做,您应该能够使用语法data.FirstOrDefault().Inspection.StatusInspectionsdata.FirstOrDefault().Loan.idLoan 等从data 对象的任何表中选择一列。

    var data = (from lo in context.tbl_loans
                join doc in context.tbl_docinfo on lo.idDocInfo equals doc.idDocInfo
                join insp in context.tbl_inspections on lo.idLoan equals insp.idLoan
                where insp.StatusInspections == 3 && lo.idLoan == 5
                select new
                {
                    Loan = lo,
                    DocInfo = doc,
                    Inspection = insp
                });
    

    【讨论】:

    • 我无法测试它,因为出现错误“Mysql.Data.Types.MySqlConversionException: Unable to convert MySql data/time value to System.DateTime”;像这样的控制台打印: Console.WriteLine("data: " + data.FirstOrDefault().Loan.CityName); 将打印唯一可用的值,例如。 “佛罗里达”?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-15
    • 1970-01-01
    • 1970-01-01
    • 2012-02-06
    • 2013-01-04
    • 1970-01-01
    相关资源
    最近更新 更多