Entity Framework 内联 SQL 动态 select table 名称

Entity Framework inline SQL dynamically select table name

我正在查询一个不太理想的数据库,奇怪的是,它没有将查找项目存储在父子关系中,而是将它们存储在单独的 table 中。因此,例如,国家有 table,州等有一个。 我无法更改数据库结构,记住这一点,

我想创建一个方法,我只需传入 table 名称和一个字段名称,我就会得到一个字符串列表,我可以用它来加载下拉列表。 (我正在使用 Entity Framework 6.x)

然而我画的是一片空白。任何帮助或指示将不胜感激。

提前致谢...

您可以在 EF 中使用 SQL 查询字符串。只需告诉它您的 return 类型:

private List<string> getFieldFromTable(string tableName, string fieldName)
{
    using (var db = new Context())
    {
        var strings = db.Database.SqlQuery<string>(string.Format("SELECT {0} FROM {1}",tableName, fieldName)).ToList();
        return strings;
    }

}