Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在构建时为LINQ to实体标记任何不受支持的LINQ运算符_Linq_Entity Framework_Linq To Entities - Fatal编程技术网

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

如何在构建时为LINQ to实体标记任何不受支持的LINQ运算符,linq,entity-framework,linq-to-entities,Linq,Entity Framework,Linq To Entities,今天,一位团队成员签入了一些类似于这样的代码 var query = repository.GetQueryable<Customer>() .OrderBy(c => c.Name) .Select( (c, i) => new{Order = i, Customer = c}); var query=repository.GetQueryable() .OrderBy(c=>c.Name) .选择((c,i)=>new{Order=i,Customer=c});

今天,一位团队成员签入了一些类似于这样的代码

var query = repository.GetQueryable<Customer>()
.OrderBy(c => c.Name)
.Select( (c, i) => new{Order = i, Customer = c});
var query=repository.GetQueryable()
.OrderBy(c=>c.Name)
.选择((c,i)=>new{Order=i,Customer=c});
显然,这个查询不会对实体框架起作用,因为Select方法的特定重载是无效的。 问题是,直到运行时,您才知道不支持的方法的任何可能用法


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

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


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

这是一个非常好的建议。在过去的几年里,一些开发团队是如何从集成测试转向单元测试的,这很有趣。只是出于好奇,如果有人有一个不需要真正数据库的解决方案,我会再给它一天时间。有了EF,我们将回到集成测试,因为具有模拟EF功能的单元测试不提供必要的验证。@Payman:我不是建议离开单元测试,而是建议用集成测试来增强单元测试。