如何在构建时标记LINQ到实体的任何不受支持的LINQ运算符

时间:2011-03-25 21:17:03

标签: linq entity-framework linq-to-entities

今天,团队成员签到了一些看起来像这样的代码

var query = repository.GetQueryable<Customer>()
.OrderBy(c => c.Name)
.Select( (c, i) => new{Order = i, Customer = c});

显然,此查询不会对Entity Framework起作用,因为Select方法的特定重载是unsupported。 问题是,在运行时之前,您不会知道任何不受支持的方法的可能用法。

有没有办法在构建期间获得某种反馈?我正在考虑编写一个自定义的FxCop规则,但想在Stackoverflow上问这个问题,以防有人有更好的想法。

1 个答案:

答案 0 :(得分:0)

您是否有针对实际数据库运行LINQ查询的集成测试?

这就是我开始付出努力的方式 - 这样你就可以测试整个查询;不仅支持查询运算符的哪些重载,还支持各种子句的内容