避免使用C#和EF Core多次访问数据库

问题描述 投票:0回答:1

我有一个需要根据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;
         }
     }
 }

提前感谢

c# entity-framework core
1个回答
0
投票

如果要减少数据库调用,并且表不是太大或它们是基本表,则可以使用“缓存数据”将表缓存在内存中。完整的文档在这里:Documentation

我希望它能帮助您解决问题。祝你好运。

© www.soinside.com 2019 - 2024. All rights reserved.