我正在尝试编写一个查询以从数据库中选择数据。我有以下代码: from notes in ctx.Notes .Where(x => x.UserId== user.UserId || x.UserId == user.FamilyId || x.UserId == user.CompanyId).DefaultIfEmpty()这样做的问题是,FamilyId 和 CompanyId 都是可为 null 的类型,可能根本没有任何损坏整个查询的值。我该如何重写它,以便它只查找FamilyId/CompanyId,如果它们具有值?
2 回答
一只甜甜圈
TA贡献1836条经验 获得超5个赞
创建条件查询:
var users = ctx.Notes.Where(x => x.UserId == user.UserId);
if (user.FamilyId != null)
{
users = users.Union(ctx.Notes.Where(x => x.UserId == user.FamilyId));
}
if (user.CompanyId != null)
{
users = users.Union(ctx.Notes.Where(x => x.UserId == user.CompanyId ));
}
var result = users.ToArray();
潇潇雨雨
TA贡献1833条经验 获得超4个赞
很简单,只需添加一个 AND 子句来检查它是否不为 null:
from notes in ctx.Notes.Where(x => x.UserId== user.UserId || (user.FamilyId ! =null && x.UserId == user.FamilyId) || (user.CompanyId !=null && x.UserId == user.CompanyId)).DefaultIfEmpty()
- 2 回答
- 0 关注
- 230 浏览
添加回答
举报
0/150
提交
取消