【问题标题】:LINQ dynamic from clauseLINQ 动态 from 子句
【发布时间】:2015-10-13 09:56:04
【问题描述】:

我使用动态 LINQ 在运行时创建查询。这是一个例子:

var result = dbContext.Table1
.Where(x => x.Field1 == "SomeValue")
.Select(x => new { x.Field1, x.Field2 });

这里我可以动态改变where子句和select子句,但是动态from子句有什么办法吗?

如果我想在运行时用其他表更改 dbContext.Table1?或者我必须为此使用 SQL?

编辑:关于重复问题建议:这是同一个问题,但该问题没有正确答案。提供的答案不够通用,我必须为每个新表添加一个案例声明......

【问题讨论】:

标签: c# entity-framework linq dynamic-linq


【解决方案1】:

您可以使用流动代码从表名中获取表值。希望对您有所帮助。

var table = (ITable)dbContext.GetType()
                       .GetProperty(tableName)
                       .GetValue(dbContext, null);

【讨论】:

    【解决方案2】:

    如果您知道需要检索的实体的类型,则可以使用数据库上下文的Set<> 方法而不是Table1 属性。例如:

    var data = dbContext.Set<EntityType>();
    

    【讨论】:

      猜你喜欢
      • 2010-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-31
      • 1970-01-01
      • 2023-03-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多