2009-01-31 44 views

回答

1

一如往常,这取决于;-p

如果你想使用LINQ扩展方法或查询语法,则没有:这是紧耦合IQueryable<T>,其中T是源型。泛型可能是一种选择,具体取决于该方案:

public IQueryable<T> Get<T>(int id) where T : SomeBaseClass 
{ 
    return GetData<T>().Where(row=>row.SomeProp == id); 
} 

以上可以由与LINQ到SQL的工作,例如,通过使用GetTable<T>()(和特制手工制作的数据对象)。当然,为了从字符串中获得泛型,你必须使用反射(MakeGenericMethod) - 所以不是微不足道的!

您能澄清一下这里的确切场景吗?

这听起来像也许你应该使用常规的命令在这里...例如,也许ExecuteQuery,这需要一个字符串命令和数据加载到类型对象。

0

我认为你是从SQL世界(猜测)新鲜可靠的,然后是的,你想要做的第一件事是从字符串构建查询(我也想这样做)。但是在Linq中,我们确实不喜欢字符串anyware,所以如果你可以发送查询的类型而不是字符串名称,那么Linq会很高兴,并且你有编译器时间检查你的查询工作。它是一种双赢的局面:)

所以,是的,给操作系统的,为什么你真正想要的表名作为字符串:)

0

LINK是不是SQL一些exsample。

当然,您可以使用它来使用LINQ-To-SQL从SQL Server数据库中获取数据,但LINQ和SQL是两个完全不同的东西。

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