c# - 如何在 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;
}
解决方案
推荐阅读
- ios - SwipeGesture (Present Modely/Show/Show Details/Deprecated Push) 最多只能处理 4 个 View 控制器吗?
- c# - 无法调试和运行 default.aspx
- java - 不打印全部数据
- mysql - 从mysql中的表中获取最大值行
- android-studio - 没有足够的磁盘空间在 Android Studio 中运行 AVD
- clang-format - 保留特定预处理器的缩进包括具有 clang 格式的块
- dart - 为什么在 Dart Lang 上 {42.05 + 0.05 } 的输出是这样的?
- android - 如何从 Google Drive 下载视频?
- svg - 如何在 Adobe Illustrator 中更改对象不同部分的笔触颜色?
- .net-core - mac文件路径问题