如何解决2个具有动态Order by和Where子句且在
很多东西,我什至不知道如何开始寻找正确的方法。
最好的方式我可以伪写它(显然跳过了很多)...
var model = from tableA in context.tableA join B in tableB join C in tableC join D in tableD
if (varColumn == "ColumnA"){
model = (from m in model orderby EF.Functions.DateDiffDay(m.date,DateTime.Now) - m.ColumnA
where m.ColumnA != 0 & m.tableC.column != null
select m).FirstOrDefault(); //never null
if (varColumn == "ColumnB"){ ..basically the same orderby/where..
if (varColumn == "ColumnC"){ ..basically the same orderby/where..
join
var model2 = Exact same logic except top X rows where not in model
var final = model join model2 order by newID
我不知道如何处理的问题:
全选-如果我最初没有将其选择到poco模型中,即使我在结果中不需要它,也无法使用m.tableC.column。我是否应该首先选择要在子查询中使用的内容,然后再仅对所需字段进行第二次选择?总共将有18个额外字段。在poco中添加字段听起来很混乱,我只需要在where / orderby中,而不是在结果中。
重复if语句-if(varColumn ==“ ColumnA”)将对所有6+列具有相同的逻辑,有没有一种方法可以简化?列名将始终以相同的格式命名。 fieldTypeColumnA,fieldTypeColumnB ...
加入-我可以同时进行两个查询,然后在1次旅行/查询中将它们合并在一起吗?输出字段相同。最初,两者都被添加到sql sproc的临时表中,然后以随机顺序选择出来。
对于上下文:这是一组测试的答案,因此第一个查询是要获取问题,第二个查询是可能的答案。
使用EF / Linq进行基本查询一会儿,但没有那么复杂。 SQL服务器是否重要。
赞赏任何输入。谢谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。