// UI layer shouldn't use directly DB types warnif count > 0 // UI layer is made of types in namespaces using a UI framework let uiTypes = Application.Namespaces.UsingAny( Assemblies.WithNameIn("PresentationFramework", "System.Windows", "System.Windows.Forms", "System.Web") ).ChildTypes() // You can easily customize this line to define what are DB types. let dbTypes = ThirdParty.Assemblies.WithNameIn("System.Data", "EntityFramework", "NHibernate").ChildTypes() // Ideally even DataSet and associated, usage should be forbidden from UI layer: // http://stackoverflow.com/questions/1708690/is-list-better-than-dataset-for-ui-layer-in-asp-net .Except(Types.WithNameIn("DataSet", "DataTable", "DataRow")) from uiType in uiTypes.UsingAny(dbTypes) let dbTypesUsed = dbTypes.Intersect(uiType.TypesUsed) select new { uiType, dbTypesUsed }