繁体   English   中英

我可以在ASP.NET C#中使用db中的动态字段实现动态对象吗

[英]Can I achieve dynamic object with dynamic fields from db in ASP.NET C#

我知道 GraphQL 是一个解决方案,但我想知道还有其他方法可以解决,因为我希望此功能只是替换 DB 调用,我只需要指定需要哪些对象及其字段并获取这些数据。 我不想要 graphQL API。

例如:我有表 A、B 和 C,如果我有表 B 和 C 的主键作为表 A 中的外键。

假设我是查询表 A 数据,Id 为 1,然后我还可以包含表 c 的数据,该表与表 A id 1 链接在同一个查询中,使用include(x => x.tableC) 例如:-

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();                    
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM