2014-10-18 91 views
-1

我想做一個LINQ到SQL提供程序,允許我查詢一個表,也沒有映射到數據模型,也不知道。C#LINQ動態表

我只知道一個表的別名,我用它來查詢另一個已知的表進行翻譯(從別名到真正的表名),之後我將使用標準的linq查詢真正的表,讀取數據,並把每個結果轉化爲動態的對象。

爲了實現這一點,我想我需要定義一個自定義的linq提供程序來操作表達式樹,然後調用標準的linq到sql;但是現在我不知道該怎麼做。

所以我的目標是,我會寫這樣的代碼:

List<dynamic> rows = form book in context.Book 
         where book.Author = "Author" 
         select book; 

預先感謝任何建議。

+0

http://www.codeproject.com/Tips/652766/Dynamically-Build-LINQ-to-SQL-Classes-at-Runtime 這似乎是我期待對於。 現在我需要測試一下,然後我可以證實這一點。 – Skary 2014-10-19 15:02:04

回答

0

您可以使用Reflection

PropertyInfo table = typeof(ContextType).GetProperty(TableName); 

from book in table.GetValue(Context) 
... 
+0

你說得對,我只是編輯了我的問題。編譯器信任你當你寫: var a = myDynamic.property 我想linq相信我,當我寫「context.AnyNames」或「x.AnyProperty」 – Skary 2014-10-19 07:07:46