MemberPathResolver

Ecng.Data.Sql.Model

Pure resolver from a MemberExpression chain rooted at an entity parameter to an emit-ready MemberPathResolution: the qualified leaf ColumnRef plus the implicit JoinPlans that must be registered for the alias to resolve. Three traversal forms are recognised at each non-leaf hop: RelationSingle navigation — emits a LEFT OUTER JOIN to the target table (so a row whose foreign key is NULL is preserved rather than silently dropped; equivalent to an INNER JOIN for a non-null FK under referential integrity); switches the running alias to the joined table.Inner-schema (value object) — accumulates a column-name prefix that flattens nested members into a single physical column.FK short-circuit — when the leaf is Id directly under a RelationSingle hop, no JOIN is added and the FK column on the parent alias is used instead. Returns for any unsupported shape (chain not rooted at a parameter, navigation target missing from SchemaRegistry, non-RelationSingle entity hop, etc.) so the caller can fall back to legacy resolution paths.

Методы

Resolve
public static MemberPathResolution Resolve(MemberExpression member, string rootAlias)
result = MemberPathResolver.Resolve(member, rootAlias)

Attempts to resolve a member-access chain to a MemberPathResolution.

member
Leaf MemberExpression (e.g. x.A.B.C).
rootAlias
Alias of the table the chain is rooted at.

Возвращает: Resolution describing the leaf column and required joins, or if the chain shape is unsupported.