c# - ASP.NET Core 模型按国外字段排序
问题描述
我有一张表TableA
,外键指向另一张表TableB
。我想获得一个列表,TableA
但需要按TableB
. 我想要用户选择的不同列的查询顺序。
表A:
class TableA
{
public int Id { get; set; }
public int TableBId { get; set; }
public DateTime RecordDate { get; set; }
public string Description { get; set; }
public TableB TableB { get; set; }
}
表B:
类 TableB { public int Id { get; 放; } 公共字符串描述 { 获取;放 } }
控制器方法:
string SortField = "TableB.Description";
string Order = "A";
var DataSet = from q in DB.TableA.Include(x => x.TableB) select q;
if (Order == "A")
{
DataSet = DataSet.OrderBy(x => EF.Property<object>(x, SortField));
}
else
{
DataSet = DataSet.OrderByDescending(x => EF.Property<object>(x, SortField));
}
假设SortField
是可变的,并且可以由用户更改。我测试了中的字段名SortField
是否在TableA
,例如Description
或RecordDate
,上面的代码没有问题,但是如果SortField来自TableB,则会引发异常错误。
谢谢!
解决方案
推荐阅读
- docker - 从现有目录在命令行 linux 中创建 Docker 映像
- python - Python Pandas 元素的最大行数
- javascript - jQuery hide/show 仅隐藏 WordPress 上的第一篇文章
- python - 熊猫表名
- c - FFT 频率分档和 PIC32
- node.js - 如何在 nodejs-dialogflow 中使用 Dialogflow 环境(测试版功能)
- mysql - 如何使用 Windows 窗体(vb.net)将数据库单列行存储到数组中
- python - 如何将字符串附加到 JSON 文件
- sql - 根据特定条件选择连接表的不同列
- html - HTML,背景图片高度和宽度不按百分比缩放