2012-03-07 47 views
2

所以我有Products類表示產品表。 要獲得所有記錄我做的:DBSet和動態SQL表達式

db.Products.ToList() 

而且我有一個這樣的字符串:

String queryString = "mp=5 AND optic=TRUE AND price=500"; 

我的問題是我如何使用這個字符串過濾器產品?當FUNC只接受lambda表達式..

感謝

回答

1

我不知道它是否仍然支持與否,但可以使用動態LINQ允許您根據需要添加「文本」基於表達式。請參閱:

您可能還需要考慮使用一個謂詞建設者更聲明做同樣的工作。有幾個在那裏,但我已經取得了巨大成功使用的一個是阿爾巴哈利一個:

希望這有助於..

+0

我剛剛看到.SqlQuery(「string」,object []) - 它呢? – Nir 2012-03-07 12:04:05

+0

從未使用它tbh,因爲我傾向於專門使用lambdas。但是,發現這可能有所幫助:http://social.msdn.microsoft.com/Forums/ar/adonetefx/thread/f0665ee1-9f49-4a7f-a750-c10a5d262110#75350997-896f-4d1f-bfe8-7f853323cd59。另請參閱:http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/advanced-entity-framework-scenarios-for-an-mvc-web-application它不是風格我會選擇用你的心! – 2012-03-07 12:20:01

0

您可以執行原始SQL反對DbSet並返回一個強類型列表。詳情請參閱EF團隊的this blog post