2013-07-24 70 views
4

基本上所有我希望做的是類似如下:如何使用動態的實體名稱搜索使用LINQ

string EntityFrameworkType = "Product"; 
string searchField = "ProductName"; 
string searchValue = "My Product"; 

using(var context = new entitycontext()) 

{ 
var result = (from x in context.EntityFrameworkType.Where(l=>l.searchField == searchValue) select x).FirstOrDefault(); 
} 
當然這句法不會工作,因爲上下文不包含名爲實體

「 EntityFrameworkType「...

是否有可能以另一種方式做到這一點?我在做一般的我的數據庫重複檢查。在本例中,我正在搜索名稱爲「我的產品」的任何產品。但我希望能夠通過這些字符串說ProductCategory與ProductCategoryId = 1 ....等...

+0

所以不是類型安全的編譯時檢查報表,你想用一串字符串並在運行時一起Munge時間他們。再次提醒我爲什麼你使用LINQ,而不僅僅是使用動態SQL(不寒而慄)。也許你應該看看T4模板來爲你生成一些代碼。 –

+0

關於t4的想法......並不是真的想要走這條路線。其原因是有一個方法來檢查任何實體類型和任何實體類型字段與dups的任何值。我當然可以爲每個實體類型編寫一個方法,但是......希望只有一種方法能夠處理任何事情。我想這也是因爲與類型的關係。如果我想創建一個與ProductCategory具有多對多關係的新產品,我不想複製該產品或任何ProductCategories ...隨着我走,它變得更混亂和混亂...... – MegaMark

回答

5

你可以看看here得到它是如何完成的想法。

你需要了解Expression

+2

這就是我正在尋找......感謝您的正確方向 – MegaMark