Table of Contents

Interface IEntityFileDiscovery

Namespace
ProjGraph.Lib.EntityFramework.Application
Assembly
ProjGraph.Lib.EntityFramework.dll

Provides methods for discovering entity-related source files within a workspace.

public interface IEntityFileDiscovery

Methods

BuildLocalSearchDirectories(string)

Builds the narrow search list — the context directory and its immediate parent — for discovery that collects by shape rather than by name and would over-collect over a wider radius.

IReadOnlyList<string> BuildLocalSearchDirectories(string contextDirectory)

Parameters

contextDirectory string

The directory containing the context file.

Returns

IReadOnlyList<string>

BuildSearchDirectories(string)

Builds a list of directories to search for entity files based on a context file directory.

IReadOnlyList<string> BuildSearchDirectories(string contextDirectory)

Parameters

contextDirectory string

The directory containing the context file.

Returns

IReadOnlyList<string>

DiscoverBaseClassFilesAsync(Dictionary<string, string>, string)

Discovers source files containing base class definitions used by entity types.

Task<Dictionary<string, string>> DiscoverBaseClassFilesAsync(Dictionary<string, string> entityFiles, string contextDirectory)

Parameters

entityFiles Dictionary<string, string>

A dictionary of entity type names and their file paths.

contextDirectory string

The directory containing the context file.

Returns

Task<Dictionary<string, string>>

DiscoverConfigurationFilesAsync(IReadOnlyList<string>, string)

Discovers source files declaring an IEntityTypeConfiguration<T> class within the given search directories.

Task<Dictionary<string, string>> DiscoverConfigurationFilesAsync(IReadOnlyList<string> searchDirectories, string contextFilePath)

Parameters

searchDirectories IReadOnlyList<string>

The directories to search for configuration files.

contextFilePath string

The file path of the context file to exclude.

Returns

Task<Dictionary<string, string>>

DiscoverEntityFilesAsync(IReadOnlyList<string>, HashSet<string>, string)

Discovers source files containing entity type definitions referenced by a DbContext.

Task<Dictionary<string, string>> DiscoverEntityFilesAsync(IReadOnlyList<string> searchDirectories, HashSet<string> entityTypeNames, string contextFilePath)

Parameters

searchDirectories IReadOnlyList<string>

The directories to search for entity files.

entityTypeNames HashSet<string>

The set of entity type names to search for.

contextFilePath string

The file path of the context file to exclude.

Returns

Task<Dictionary<string, string>>

ExtractBaseClassNamesFromSyntax(SyntaxNode, HashSet<string>)

Extracts base class names from a syntax node and adds them to the provided set.

void ExtractBaseClassNamesFromSyntax(SyntaxNode root, HashSet<string> baseClassNames)

Parameters

root SyntaxNode

The root syntax node to analyze.

baseClassNames HashSet<string>

The set to store extracted base class names.

ExtractEntityTypeNames(ClassDeclarationSyntax)

Extracts entity type names from a DbContext class declaration.

HashSet<string> ExtractEntityTypeNames(ClassDeclarationSyntax contextClass)

Parameters

contextClass ClassDeclarationSyntax

The class declaration syntax of the DbContext.

Returns

HashSet<string>

SearchForBaseClassFiles(HashSet<string>, DirectoryInfo)

Searches for source files containing base class definitions in a directory.

Dictionary<string, string> SearchForBaseClassFiles(HashSet<string> baseClassNames, DirectoryInfo searchDirectory)

Parameters

baseClassNames HashSet<string>

The set of base class names to search for.

searchDirectory DirectoryInfo

The directory to search within.

Returns

Dictionary<string, string>