【发布时间】:2020-06-01 16:59:58
【问题描述】:
我有一个要求,我需要根据 Id 显示一个值。为此,我对数据库和不同的表进行了多次调用。是否可以减少调用次数?
我有基于对 DB 的调用发生的切换条件。下面是示例
foreach (var items in table1)
{
foreach (var item in items.List)
{
switch (item.condition)
{
case condition1:
case condition2:
item.nvalue= string.Join(",", _context.table1.Where(x => ids.Contains(x.Id)).Select(x => x.Title));
break;
case condition3:
item.nvalue= string.Join(",", _context.tabl2.Where(x => secondIds.Contains(x.Id)).Select(x => x.newvalu));
break;
case condition4:
item.nvalue= string.Join(",", _context.tabl3.Where(x => someIds.Contains(x.Id)).Select(x => x.oldvalue));
break;
case condition5:
item.nvalue= string.Join(",", _context.tabl4.Where(x=>textIds.Contains(x.Id)).Select(x => x.note));
break;
default:
item.nvalue= "";
break;
}
}
}
提前致谢
【问题讨论】:
-
这似乎是代码的味道......
-
你试过了吗? stackoverflow.com/questions/23172888/… 这也适用于 EF 核心。
-
这可能是可能的,但取决于。 (1) 什么是 EF Core 版本? (2)这里
foreach (var items in table1)的table1变量的类型是什么--内存集合还是dbIQueryable<>?