如何解决我可以在ASP.NET C#中使用db中的动态字段来实现动态对象吗?
我知道GraphQL是一种解决方案,但是我想知道还有其他方法吗,因为我希望此功能仅用于替换DB调用,而我只需指定所需的对象及其字段并获得这些数据即可。我不需要graphQL API。
例如:我有表A,B和C,并且如果我有表B和C主键作为表A中的外键。
比方说,我正在用ID 1查询表A的数据,然后我还可以在与include(x => x.tableC)
的同一查询中包括与表A id 1链接的表c的数据。例如:-
db.Where<TableA>(x => x.id.equals(id)).include(x => x.tablec);
现在,我的要求就像要包含的数据可以是动态的,只能是TableB(FieldA,FieldB)
,也可以是TableC(FieldA),TableB(FieldA,FieldB)
或只有TableC(FieldD)
。
因此,我想要结果
要包含的内容将在变量中
解决方法
据您对我的问题的了解;并假设您将关系存储在变量中,以便可以链接include
:
类似这样的东西:
//Lets say TableA has relation with tableB and tableC
List<string> tableARelations = new List<string>()
{
"tableB","tableC"
}
using (var dbContext = GetDbContext())
{
var query = dbContext.TableA.AsQueryable();
foreach (string include in tableARelations)
{
query = query.Include(include);
}
var result = query.Where(x => x.Id.Equals(id)).FirstOrDefault();
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。