Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linq to SQL中的动态表名_Sql_Linq To Sql_Dynamic_Ienumerable - Fatal编程技术网

Linq to SQL中的动态表名

Linq to SQL中的动态表名,sql,linq-to-sql,dynamic,ienumerable,Sql,Linq To Sql,Dynamic,Ienumerable,大家好,我有一个可怕的数据库,我必须与之合作,linq to sql是我用来检索数据的选项。任何试图通过根据用户选择输入不同的表名来重用函数的人,据我所知,在DataContext查询中无法修改TEntity或表 这是我当前的代码 public void GetRecordsByTableName(string table_name){ string sql = "Select * from " + table_name; var records = dataContext.ExecuteQu

大家好,我有一个可怕的数据库,我必须与之合作,linq to sql是我用来检索数据的选项。任何试图通过根据用户选择输入不同的表名来重用函数的人,据我所知,在DataContext查询中无法修改TEntity或表

这是我当前的代码

public void GetRecordsByTableName(string table_name){

string sql = "Select * from " + table_name;
var records = dataContext.ExecuteQuery</*Suppossed Table Name*/>(sql);

ViewData["recordsByTableName"] = records.ToList();
}
public void GetRecordsByTableName(字符串表名称){
string sql=“Select*from”+表名称;
var records=dataContext.ExecuteQuery(sql);
ViewData[“recordsByTableName”]=records.ToList();
}

我想用可枚举记录填充ViewData。

您可以在DataContext实例上调用ExecuteQuery方法。您需要调用接受类型实例的重载,如下所示:


假设您有一个表的属性正确的类型,为该类型传递该类型实例,SQL将为您提供所需的内容。

正如casperOne已经回答的那样,您可以使用
ExecuteQuery
方法优先重载(请求类型参数的重载)。因为我有一个类似的问题,你问了一个例子,这里有一个:

public IEnumerable<YourType> RetrieveData(string tableName, string name)
        {
            string sql = string.Format("Select * FROM {0} where Name = '{1}'", tableName, name);

            var result = YourDataContext.ExecuteQuery(typeof(YourType), sql);

            return result;
        }
因此,在前一个示例中,ExecuteQuery方法是:

var result = YourDataContext.ExecuteQuery(typeof(ClientDataCustomType), sql);
var result = YourDataContext.ExecuteQuery(typeof(ClientDataCustomType), sql);