2009-01-31 83 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。