Skip to content

关于eagerLoading问题 #4

Description

@fxwdl

我看现在目前的EntityFrameworkRepository的实现,对于eagerloading只支持1级,比如s=>s.Classes这种。
因为这个传进来的表达式,最终还是要转成string放到Include中的,而EF又是支持多级的Include的,所以我改成了多级的方式。老大看看这样做是否合理,或者说这个目前的实现本身就是支持,是我没有搞明白?

var list = re.FindAll(new ExpressionSpecification(s => s.Name.Contains("中学")), s => s.Name, SortOrder.Descending, s => s.SchoolClasses[0].Students, s => s.SchoolClasses[0].Students);

    private string GetEagerLoadingPath(Expression<Func<TAggregateRoot, dynamic>> eagerLoadingProperty)
    {
        MemberExpression memberExpression = this.GetMemberInfo(eagerLoadingProperty);
        var parameterName = eagerLoadingProperty.Parameters.First().Name;
        var memberExpressionStr = memberExpression.ToString();
        memberExpressionStr = Regex.Replace(memberExpressionStr, @"get_Item\(\d+\)\.", "");
        var prefix = parameterName + ".";
        var path = memberExpressionStr.Substring(prefix.Length);            
        return path;
    }

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions