Linq中用于實(shí)體的動態(tài)WHERE子句(OR)在崗位上這里我學(xué)習(xí)了如何使用Linq的延遲執(zhí)行來構(gòu)建動態(tài)查詢。但是,查詢實(shí)際上使用的是和地點(diǎn)條件的串聯(lián)。如果使用OR邏輯,如何實(shí)現(xiàn)相同的查詢?由于使用了Flagesenum,查詢應(yīng)該搜索用戶名, Windows用戶名或雙管齊下:public User GetUser(IdentifierType type, string identifier){
using (var context = contextFactory.Invoke())
{
var query = from u in context.Users select u;
if (type.HasFlag(IdentifierType.Username))
query = query.Where(u => u.Username == identifier);
if (type.HasFlag(IdentifierType.Windows))
query = query.Where(u => u.WindowsUsername == identifier);
return query.FirstOrDefault();
}}
3 回答

慕運(yùn)維8079593
TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超5個贊
LINQKit
Microsoft.Linq.Dynamic
- 3 回答
- 0 關(guān)注
- 1038 瀏覽
添加回答
舉報
0/150
提交
取消