2015-05-14 65 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

在实体框架中,您无法执行任何没有域实体映射的操作。并且在动态表和字段中不可能做得更好,您可以将查询构建为字符串并执行该查询。 –