首页 > 解决方案 > 当 Linq 查询没有记录时返回一个空模型

问题描述

请我正在处理一个ASP.NET MVC项目Entity Framework,并且在一个函数中我希望它返回由模型结构化的数据(我使用 LINQ 查询来检索函数将返回的数据)。当查询有数据时一切都很好LINQ,但是当LINQ查询没有数据时我得到了这个错误:

错误 :

序列不包含任何元素

功能 :

public static List<ABS_model> SELECT_Related_With_STG_Details(string STG)
{
    var R = (from A in SCHOOL_DB_Context.Con.ABS 
                join S in SCHOOL_DB_Context.Con.STGs on A.STG_ABS equals S.CD_STG
                join U in SCHOOL_DB_Context.Con.UFs on A.UF_ABS equals U.CD_UF
                where A.STG_ABS == STG
                select new ABS_model {
                    N_ABS = A.N_ABS,
                    STG_ABS = A.STG_ABS,
                    NM_STG = S.NM_STG,
                    PRN_STG = S.PRN_STG,
                    DT_ABS = A.DT_ABS,
                    UF_ABS = U.NM_UF,
                    INTTL_UF = U.NM_UF,
                    JSTF_ABS = A.JSTF_ABS,
                    JSTF_DOC_ABS = A.JSTF_DOC_ABS
                }
            ).ToList();
            
    return R;
}

因此,如果 Query 没有记录(如果可以),我想返回 Null 模型。

所以请帮忙?

标签: c#asp.net-mvcentity-frameworklinq

解决方案


试试这个,应该可以:

var R = from A in SCHOOL_DB_Context.Con.ABS
                join S in SCHOOL_DB_Context.Con.STGs
                   on A.STG_ABS equals S.CD_STG
                join U in SCHOOL_DB_Context.Con.UFs
                   on A.UF_ABS equals U.CD_UF
                where A.STG_ABS == STG
                select new ABS_model
                {
                    N_ABS = A.N_ABS,
                    STG_ABS = A.STG_ABS,
                    NM_STG = S.NM_STG,
                    PRN_STG = S.PRN_STG,
                    DT_ABS = A.DT_ABS,
                    UF_ABS = U.NM_UF,
                    INTTL_UF = U.NM_UF,
                    JSTF_ABS = A.JSTF_ABS,
                    JSTF_DOC_ABS = A.JSTF_DOC_ABS
                };
if(R.Any())
{
   return R.ToList();
}
else
{
   return null;
}

推荐阅读