c# - 当 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 模型。
所以请帮忙?
解决方案
试试这个,应该可以:
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;
}
推荐阅读
- java - 在 n 层服务层中使用 Spring Boot 的 JUnit
- ruby-on-rails - Rails 测试失败无法连接到服务器:没有这样的文件或目录 (PG::ConnectionBad)
- prolog - dcg parsing in random order
- python - 使用 str.replace 将小写字母更改为大写字母的问题,反之亦然
- ios - 如何在 swift 项目中使用 `-fsanitize-coverage=trace-pc-guard`?
- java - 我的回收站视图搜索过滤器不适用于对象列表
- c# - EF Core .ThenInclude 不包括外部实体并导致查询不检索任何内容
- bootstrap-4 - 引导日期选择器部分隐藏
- python - 连续两条以上相似的线条适合我
- html - Vue从本地文件导入HTML