【发布时间】:2020-06-07 01:35:28
【问题描述】:
//1. inserting data into the db
_context.MyModel.AddRange(content);
_context.SaveChanges();
//2. calling a stored procedure for data process
_context.Database.ExecuteSqlRaw("CALL process_data()");
//3. getting back processed data - not working, getting pre-processed data instead
List<MyModel> processedContent = _context.MyModel.ToList();
我在从第 2 步中获取已处理的数据时遇到问题。在第 3 步中。-我不断返回的数据是我在第 1 步中插入的数据。(预处理数据),而我想获取存储过程处理过的数据。
我在第 3 步设置了一个断点,并在 db 上运行查询 - 是的,所有已处理的数据都在那里。 _context 似乎没有更新新数据。
知道我在这里做错了什么吗?
【问题讨论】:
-
你试过"var results = _context.Database.ExecuteSqlRaw("CALL process_data()");"
-
尝试 _context.SaveChanges();执行存储过程后的方法。
-
@Tan
ExecuteSqlRaw查询只返回受影响的行数作为 int。 @ParamjotSingh 谢谢,但我试过了,它没有解决问题。在我创建了一个新的数据库上下文来获取数据后,我得到了处理后的数据。所以这增加了我的理论,即_context需要刷新。 -
你可以尝试添加一个调试点 tehre 并检查是否有更多的数据然后只是一个 int。
-
@Tan 它只返回一个整数:docs.microsoft.com/en-us/dotnet/api/…
标签: c# postgresql asp.net-core entity-framework-core