作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我打算使用 Marc Gravell 在这里写的 InRange
扩展:
LINQ Expression to return Property value?
到目前为止,这是我的代码:
// Fetch list of visit Ids and distinct Ips that fall into the date range
var q = (from c in db.tblTrackerVisits where c.Date >= MinDate select new { c.ID, c.IPID });
List<int> VisitIDs = q.Select(c => c.ID).ToList();
List<int> DistinctIPs = q.Select(c => c.IPID).Distinct().ToList();
// List of all campaigns that have visitors
var Campaigns = db.tblTrackerVariables
.Where(c =>
c.TypeID == Settings.CampaignTrackerVariableTypeID
//&& db.tblTrackerVisitVariables.Any(d=>VisitIDs.Contains(d.VisitID) && d.VariableID == c.ID)
&& db.tblTrackerVisitVariables.InRange(x => x.VisitID, 1500, VisitIDs)
)
.Select(c => new { c.ID, c.Name }).OrderBy(c=>c.Name);
然而这抛出:
Cannot implicitly convert type 'System.Collections.Generic.IEnumerable<tblTrackerVisitVariable>' to 'bool'
我不确定我是否正确使用它,任何人都可以给我一些指示吗?上面注释掉的&&:
//&& db.tblTrackerVisitVariables.Any(d=>VisitIDs.Contains(d.VisitID) && d.VariableID == c.ID)
是旧的工作代码(但它抛出太多参数错误所以我不得不求助于这个扩展方法)。
最佳答案
Mark 的扩展方法返回一个 IEnumerable
,而不是一个 bool
,因此不能包含在逻辑表达式中。我想检查结果是否为非空,请尝试使用 Any
方法:
db.tblTrackerVisitVariables.InRange(x => x.VisitID, 1500, VisitIDs).Any()
关于c# - Linq-To-SQL Marc Gravell 的 InRange 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8971765/
我是一名优秀的程序员,十分优秀!