如何指示NDepend忽略EF类?

时间:2011-08-22 05:53:49

标签: .net entity-framework ndepend cqlinq

我在NDepend上遇到一点问题而不是忽略生成的代码。在创建实体数据模型时,它会在EF生成的designer.cs文件中查找围绕方法的问题。该类被注释为“自动生成”注释,但仍被NDepend选中。

我似乎无法找到如何强制* .designer.cs被忽略,甚至忽略没有外卡的特定文件。我最接近的是几年前this post,帕特里克提到计划这样做,但仅此而已。

我错过了什么吗?有没有简单的方法可以排除这个?

1 个答案:

答案 0 :(得分:5)

Code Query and Rule over LINQ (CQLinq)确实为忽略生成的代码提供了便利。

有一个名为 JustMyCode 的方便预定义域名ICodeBaseView

JustMyCode 表示CQLinq的工具,用于从CQLinq查询结果中消除生成的代码元素。例如,以下查询仅匹配工具(如UI设计器)未生成的大型方法:

from m in JustMyCode.Methods where m.NbLinesOfCode > 30 select m

生成的代码元素集由CQLinq查询定义,前缀为CQLinq关键字 notmycode 。例如,下面的查询匹配源文件中定义的方法,源文件的名称以“。designer.cs”

结尾
notmycode from m in Methods where
  m.SourceFileDeclAvailable && 
  m.SourceDecls.First().SourceFile.FileName.ToLower().EndsWith(".designer.cs")
select m

CQLinq查询运行器在依赖 JustMyCode 的查询之前执行所有 notmycode 查询,因此域 JustMyCode 被定义为一次。显然,如果 notmycode 查询依赖于 JustMyCode 域,CQLinq编译器会发出错误。

有4个默认 notmycode 查询,可轻松根据您的需要进行调整。您还可以创建其他 notmycode 查询: