LINQ动态从条款
问题描述:
我使用动态LINQ在运行时创建查询。这里有一个例子:LINQ动态从条款
var result = dbContext.Table1
.Where(x => x.Field1 == "SomeValue")
.Select(x => new { x.Field1, x.Field2 });
在这里,我可以动态改变where子句和SELECT子句,但有什么办法从条款的动态?
如果我想在运行时更改dbContext.Table1与其他表?或者我必须使用SQL?
编辑:关于重复的问题建议:这是同一个问题,但在这个问题上没有正确的答案。在那里提供的答案是不够通用的,我将不得不为每个新表格添加一个case语句...
答
您可以使用流动代码从表名获取表值。希望能帮助到你。
var table = (ITable)dbContext.GetType()
.GetProperty(tableName)
.GetValue(dbContext, null);
答
如果你知道你需要检索实体的类型,你可以用你的数据库的上下文,而不是Table1
属性的Set<>
方法。例如:
var data = dbContext.Set<EntityType>();
的可能的复制[?如何建立一个动态的从LINQ查询条款(http://stackoverflow.com/questions/13796941/how-to-build-a-dynamic-from -clause-FOR-A-LINQ查询) –