我正在嘗試編寫一個查詢以從數據庫中選擇數據。我有以下代碼: 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 關注
- 282 瀏覽
添加回答
舉報
0/150
提交
取消