问题描述
我有两个表,例如:
仅用于说明目的。我没有在这里列出所有代码。时间很长。
Employee
EmployeeID
OpenID
JoinDate
OAuth
OpenID
Name
我希望我的查询希望按名称或 JoinDate 进行排序取决于用户希望排序的列。这是我通常的做法:
var qry = from q in db.Employee select q;
switch (sortField)
{
case "JoinDate": qry = from q in qry orderby q.JoinDate select q; break;
case "Name": qry = from q in qry orderby q.OAuth.Name select q; break;
}
Employee和OAuth之间的关系是一对一的。当我们按 JoinDate 排序时,它可以查询。但是,如果选项为名称,则无法将两个表连接起来并对其正确排序。
错误消息是:
OrderBy(t => t.OAuth.Name)' could not be translated. Either rewrite the query in a form that can be translated,or switch to client evaluation explicitly by inserting a call to either AsEnumerable(),AsAsyncEnumerable(),ToList(),or ToListAsync(). See https://go.microsoft.com/fwlink/?linkid=2101038 for more information.
Source = Microsoft.EntityFrameworkCore
如果我没记错的话,我们应该可以在linq2sql中做到这一点。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)