2015-05-14 63 views
0

我正在使用EF 6.1作爲項目​​,但該項目的一部分需要允許用戶能夠創建自定義表格,該表格包含自定義數據。現在我希望能夠使用LINQ查詢數據並思考WHERE子句,我可以使用DynamicLINQ,但是如何查詢表,當我擁有的是表名作爲字符串時?帶有LINQ名稱和返回數據的查詢表

對於用戶創建自定義表格的數據,我不會創建類。我會將表格本身放在SQL中,並且也是一個EAV類型的表格,它保存該表格的詳細信息。

因爲我也沒有這些表的類,我可以使用LINQ查詢數據嗎?如果是這樣,它會返回什麼樣的對象?也許動態?

所以基本上我想這樣的事情

var data = _context.GetTable("MyTable") 
    .Where("Name = 'BOB') 
    .ToList(); 

這可能嗎?有人能指出我如何解決這個問題的正確方向嗎?

回答

0

不,因爲名稱本身說它是實體框架,所以它需要具有預定義映射域實體的實體和關係數據。直到實體框架 - 6它不支持可能在未來的版本 http://blogs.msdn.com/b/adonet/archive/2014/05/19/ef7-new-platforms-new-data-stores.aspx

對於您的解決方案,我建議您使用支持所有ADO.Net函數的ADO.Net和Enterprise Library,以便您可以進行字符串查詢並將其構建爲動態並執行該查詢。

+0

如果每個創建的表都有一個特定的接口來定義某些特定的字段,這會有所作爲嗎?即。 ID,名稱,參考。所有其他字段將是動態的 – Gillardo

+0

在實體框架中,您無法執行任何沒有域實體映射的操作。並且在動態表和字段中不可能做得更好,您可以將查詢構建爲字符串並執行該查詢。 –