存储过程在ef核心中返回旧值

时间:2016-09-11 08:40:24

标签: entity-framework stored-procedures asp.net-core

我有一个ASP.NET Core Web API。我正在使用带有存储过程的原始SQL来计算一些值:

private TestContext context;

public TestRepository(TestContext tContext)
{
     context = tContext;
}    

public IEnumerable<test> GetTests(User user)
{
    return context.tests.FromSql("EXECUTE dbo.test_GETALL {0}", user.code).ToList();
}

当我在表中插入新记录时,必须更改结果,但此代码返回旧值。我如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

如果TestContext连接到EF,那么问题就在于,或者您的交易配置不当。

答案 1 :(得分:0)

我自己也有类似的问题。

检查 startup.cs ,确保服务和存储库 .AddSingleton

这些需要更改为.AddScoped(您也可以使用.AddTransient

services.AddSingleton<IYourService, YourService>(); //Needs to be AddScoped
services.AddSingleton<IYourRepository, YourRepository>(); //Also needs to be AddScoped

如果您需要更多详细信息,请访问my SO question that I believe relates to your situation

希望这有帮助!