我正在研究一個數據庫訪問層項目,並決定使用Linq to SQL。我想要做的事情之一是提供一個API,它可以將Linq表達式作爲參數來檢索數據。舉例來說,我寫了這個API,現在看起來是這樣的:Linq to Sql:我這樣做對嗎?
public Result GetResults(System.Linq.Expressions.Expression<Func<Result, bool>> predicate)
{
Result result = db.Results.SingleOrDefault(predicate);
return result;
}
然後,您可以使用此API來查詢數據庫,爲滿足一定條件的限制一行,例如:
Result result = Provider.GetResults(r => r.ID == 11);
這工作得很好。根據我的情況,我能夠獲得我想要的一排。
下一步是採取這種方式能夠從數據庫中獲取多個對象。
我它得到的工作方式是這樣的:
正如你所看到的,我所說的選擇與R => R,這使我回一切,然後我使用WHERE過濾到我所需要的。
它的工作原理......但有些東西告訴我,我做的確很醜。我可能是錯的,但是這不會將結果表中的所有東西都抽出來然後過濾它嗎?或者它是否將在數據庫級別進行過濾的正確SQL語句放在一起?
無論如何......我非常感謝一些關於如何完成這項任務的指導。如何編寫一個將Linq表達式作爲參數的API,並根據該表達式從數據庫中返回一組對象。
謝謝!
是的。我看了一會兒,意識到這一點。我的意思是通過謂語的條款是的,我測試沒有它:) 非常感謝您花時間回答! – Nazeeh 2009-06-19 22:57:58