使用变量作为实体表名称

时间:2011-06-02 12:11:30

标签: c# sql entity-framework

有没有办法动态地定义表名,所以如果我访问的表对于不同的条件不同,我不必进行多次调用?如果我可以使用变量名,我不想为我正在访问的每个表都有if / else。

using (Entity ctx = new Entity())
{
    dbTableVal = "EntityTables";
    var query = from d in dbTableVal
                where d == "Yes"
                select d;
}

3 个答案:

答案 0 :(得分:1)

我猜不,因为表本身也定义了返回IQueryable<T>的类型。使用ESQL(具有字符串语法)甚至无法定义通用查询,而您不知道结果集的类型。

答案 1 :(得分:0)

看看下面的内容:

Using LINQ to SQL with Dynamic tables

答案 2 :(得分:0)

你可以创建一个接受“对象”和“类型”的函数并返回一个IQUeryable吗?

例如:

private IQueryable GetQuery(object Table, Type t)
{
    var query = from d in ((t)Table) where d == "Yes" select d;
    return query;
}

UNTESTED !!!所以可能需要对此做一些修改,但沿着这些方面的某些内容可能对你有用....