繁体   English   中英

如何使用实体框架在SQL Server中查找我想要的表

[英]How to find the table i want in an sql server using entity framework

我正在使用一种其目的是从表中读取的方法。 该方法有一个输入参数,一个字符串,其中包含要传递的表名和要从中读取的表名。 有多个表。 到目前为止,我的代码:

public List<dataTable> GetData(string name)
    {
        TableEntities db = new TableEntities();
        db.Database.Connection.Open();
        foreach (var readDb in db.SOMETHING_HERE) //here it should find the table which is equal to the table I'm passing as string name
        {
            dataTable data = new dataTable();
            data.name = readDb.name;

在db有很多选项。 但我不知道哪个适合我的需求。

我认为您需要使用反射来实现: MSDN反射参考

您可能需要尝试以下方法:(假设示例表雇员和部门)

public List<dataTable> GetData(string name)
{
    using(TableEntities db = new TableEntities())
    {
        if(new Employees().GetType().ToString().Equals(name))
            //Do query
    }
}

它不是很漂亮,但是您可以尝试以下方法:

        using (TableEntities db = new TableEntities())
        {
            var type = Type.GetType("namespace." + tableName);

            var query = db.Database.SqlQuery(type, "SELECT * FROM " + tableName);

            foreach (var row in query)
            {
                PropertyInfo prop = type.GetProperty("NAME");
                string name = (string)prop.GetValue(row);
            }
        }

暂无
暂无

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

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