LINQ动态from子句
本文关键字:子句 from 动态 LINQ | 更新日期: 2023-09-27 18:17:21
我使用动态LINQ在运行时创建查询。下面是一个例子:
var result = dbContext.Table1
.Where(x => x.Field1 == "SomeValue")
.Select(x => new { x.Field1, x.Field2 });
在这里我可以动态地改变where子句和select子句,但是有没有办法动态地改变from子句呢?
如果我想更改dbContext。表1与其他表在运行时?还是必须使用SQL ?
编辑:关于重复问题建议:这是同一个问题,但是那个问题没有正确答案。如果答案不够通用,我将不得不为每个新表放置一个case语句…
可以使用流畅的代码从表名中获取表值。希望能有所帮助。
var table = (ITable)dbContext.GetType()
.GetProperty(tableName)
.GetValue(dbContext, null);
如果你知道你需要检索的实体的类型,你可以使用数据库上下文的Set<>
方法而不是Table1
属性。例如:
var data = dbContext.Set<EntityType>();