.net LINQ-使用动态LINQ是否可以动态指定from子句?

.net LINQ-使用动态LINQ是否可以动态指定from子句?,.net,linq,.net-3.5,.net,Linq,.net 3.5,我想建立动态linq 但是我想动态地设置表(from子句) 这可能吗 马尔科姆一如既往,这要看情况而定-p 如果要使用LINQ扩展方法或查询语法,则否:这与IQueryable紧密耦合,其中T是源类型。泛型可能是一种选择,具体取决于场景: public IQueryable<T> Get<T>(int id) where T : SomeBaseClass { return GetData<T>().Where(row=>row.SomeProp

我想建立动态linq

但是我想动态地设置表(from子句)

这可能吗


马尔科姆

一如既往,这要看情况而定-p

如果要使用LINQ扩展方法或查询语法,则否:这与
IQueryable
紧密耦合,其中
T
是源类型。泛型可能是一种选择,具体取决于场景:

public IQueryable<T> Get<T>(int id) where T : SomeBaseClass
{
    return GetData<T>().Where(row=>row.SomeProp == id);
}
public-IQueryable-Get(int-id),其中T:SomeBaseClass
{
返回GetData(),其中(row=>row.SomeProp==id);
}
例如,可以通过使用
GetTable()
(以及手工制作的数据对象)使上述内容与LINQ to SQL配合使用。当然,要从字符串到泛型,您必须使用反射(
MakeGenericMethod
)-这可不是小事

你能澄清一下这里的确切情况吗


听起来你应该在这里使用常规命令。。。例如,可能是with,它接受一个string命令并将数据加载到类型化对象中。

我认为您可能是来自SQL世界的新鲜人(猜测),然后是的,您要做的第一件事是从字符串构建查询(我也希望如此)。但是在Linq中,我们真的不喜欢字符串anyware,因此如果您能以某种方式发送要查询的表的类型,而不是字符串名称,那么Linq将很高兴,并且您有编译器时间检查您的查询工作。这是一个双赢的局面:)

因此,是的,给操作系统一些示例,说明为什么您真的希望表名为字符串:)

链接不是SQL

当然,您可以使用LINQ to SQL从SQL Server数据库中获取数据,但LINQ和SQL是两种截然不同的东西

在许多情况下,它们的使用模式看起来很相似,但LINQ的优点是具有编译时类型检查和推断,而不是运行时检查。SQL无法实现这一点