【问题标题】:Query table with name and return data with LINQ使用名称查询表并使用 LINQ 返回数据
【发布时间】:2015-05-14 18:35:23
【问题描述】:

我在一个项目中使用 EF 6.1,但该项目的一部分需要允许用户创建自定义表,以保存自定义数据。现在我希望能够使用 LINQ 查询数据并考虑 WHERE 子句,我可以使用 DynamicLINQ,但是当我只有表名作为字符串时,我如何查询表?

对于用户创建自定义表的数据,我不会创建类。相反,我会在 SQL 中拥有表本身,以及一种 EAV 类型的表,其中包含该表的详细信息。

由于我也没有这些表的类,我可以使用 LINQ 查询数据吗?如果是这样,它会返回什么样的对象?也许是动态的?

所以基本上我想要这样的东西

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

这可能吗?有人可以为我指出如何解决这个问题的正确方向吗?

【问题讨论】:

    标签: c# .net linq entity-framework entity-framework-6


    【解决方案1】:

    不,正如名称本身所说,它是实体框架,因此它需要具有预定义映射域实体的实体和关系数据。直到实体框架 - 6 不支持它可能在未来的版本中 http://blogs.msdn.com/b/adonet/archive/2014/05/19/ef7-new-platforms-new-data-stores.aspx

    对于您的解决方案,我建议您使用支持所有 ADO.Net 函数的 ADO.Net 和 Enterprise Library,这样您就可以进行字符串查询并动态构建它并执行该查询。

    【讨论】:

    • 如果创建的每个表都有一个定义某些特定字段的特定接口,这会有所不同吗? IE。 ID,名称,参考。所有其他字段都是动态的
    • 在实体框架中,如果没有域实体映射,您将无法执行任何操作。在动态表和字段中,您可以将查询构建为字符串并执行该查询。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-03
    • 1970-01-01
    • 1970-01-01
    • 2016-06-25
    • 1970-01-01
    • 1970-01-01
    • 2013-06-13
    相关资源
    最近更新 更多