我有这种方法,首先,它从数据库(连接表)中获取所有数据,然后使用搜索属性和搜索关键字过滤结果,如下所示。在我使用 LINQ 添加 switch ... case 之前,一切都很好,我收到错误“找不到元数据 .dll”。显然,错误来自它,但我不知道错误是什么,我对 LINQ 很陌生。
public IPagedList<dynamic> Execute(int pageIndex, int pageSize, string searchProperty, string searchKeyword)
{
IQueryable<dynamic> dokumente;
dokumente = session.Query<Dokument>().Select(dokument =>
new {Beschreibung = dokument.Beschreibung,
Link = dokument.Link,
Dokumenttyp = dokument.Dokumenttyp.Bezeichnung,
}).ToList().AsQueryable();
if (!string.IsNullOrEmpty(searchProperty))
{
switch (searchProperty)
{
case "Beschreibung":
dokumente = dokumente.Where(x => x.Beschreibung == searchKeyword);
break;
case "Link":
dokumente = dokumente.Where(x => x.Link == searchKeyword);
break;
case "Dokumenttyp":
dokumente = dokumente.Where(x => x.Dokumenttyp == searchKeyword);
break;
}
}
return new PagedList<dynamic>(dokumente, pageIndex, pageSize);
}