【发布时间】:2011-05-25 04:50:40
【问题描述】:
我目前在我的存储库中有这样的方法:
public int GetMessageCountBy_Username(string username, bool sent)
{
var query = _dataContext.Messages.AsQueryable();
if (sent)
query = query.Where(x => x.Sender.ToLower() == username.ToLower());
else
query = query.Where(x => x.Recipient.ToLower() == username.ToLower());
return query.Count();
}
它目前基于 sent 布尔值构建两个查询之一。这是执行此操作的最佳方法,还是有办法在查询本身中执行此操作?如果sent 等于真,我想检查x.Sender 是否等于username。但是我想检查x.Recipient是否等于username如果sent等于false。
然后我希望这个 LINQ 表达式在 Entity Framework 中转换为 SQL,我相信它正在这样做。
我只是想避免重复尽可能多的代码。
【问题讨论】:
标签: c# sql linq entity-framework