首页 > 解决方案 > 如何在 ASP.NET Core MVC 中获取包含的字段

问题描述

我有这样的关系:

表

模型:我有一对多的关系:

public class SportClub : EditableEntityBase
{
    public string Name { get; set; }
    public ICollection<AppUser> AppUsers { get; set; }
    public ICollection<Event> Events { get; set; }
}

我想获得包括当前用户:

var getUserClub = _sportClubRepository.Value
                                      .GetQueryByIncluding(x => x.AppUsers.Where(y => y.Id == 19));

但我收到一个错误:

Include 搜索路径表达式必须引用类型中定义的导航属性。在链接的导航属性中使用点路径,并为集合的导航属性使用 Select 运算符。

参数名称:路径

说明:执行当前 Web 请求时出现未处理的异常。检查堆栈跟踪以获取有关此错误和导致它的代码片段的更多信息。

异常详细信息:System.ArgumentException:包含搜索路径表达式必须引用类型中定义的导航属性。在链接的导航属性中使用点路径,并为集合的导航属性使用 Select 运算符。参数名称:路径

源错误:

328

Строка 326: foreach (var includeProperty in includeProperty)
Строка 327: {
Строка 328: query = query.Include(includeProperty);
Строка 329: }
Строка 330:

我究竟做错了什么?

如果我想包含字段,我应该怎么做?

连接到数据库:

 private readonly Lazy<IRepository<SportClub>> _sportClubRepository;
    private readonly Lazy<IRepository<AppUser>> _appuserRepository;

U PD: 我有 3 种服装方法:

    public IEnumerable<TEntity> GetAllIncluding(params Expression<Func<TEntity, object>>[] includeProperties)
    {
        var query = GetQuery();

        foreach (var includeProperty in includeProperties)
        {
            query = query.Include(includeProperty);
        }

        return query.AsEnumerable();
    }

    public IEnumerable<TEntity> FindByIncluding(Expression<Func<TEntity, bool>> predicate,
        params Expression<Func<TEntity, object>>[] includeProperties)
    {
        var query = GetQuery().Where(predicate);

        foreach (var includeProperty in includeProperties)
        {
            query = query.Include(includeProperty);
        }

        return query.AsEnumerable();
    }

    public IQueryable<TEntity> GetQueryByIncluding(params Expression<Func<TEntity, object>>[] includeProperties)
    {
        var query = GetQuery();

        foreach (var includeProperty in includeProperties)
        {
            query = query.Include(includeProperty);
        }

        return query;
    }

标签: c#asp.net-coreasp.net-core-mvc

解决方案


推荐阅读