Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# E.F上下文-存储过程和查询_C#_Sql Server_Entity Framework - Fatal编程技术网

C# E.F上下文-存储过程和查询

C# E.F上下文-存储过程和查询,c#,sql-server,entity-framework,C#,Sql Server,Entity Framework,我得到一个实体: Account account; account = context.Accounts.where(_ => _accountId = 1).FirstOrDefault(); 然后,我正在运行一个存储过程,该过程正在更改Accounts表上的数据: string query = string.Format("{0} {1}", "SpUpdateAccount",

我得到一个实体:

Account account;

account = context.Accounts.where(_ => _accountId = 1).FirstOrDefault();
然后,我正在运行一个存储过程,该过程正在更改Accounts表上的数据:

string query = string.Format("{0} {1}",
                          "SpUpdateAccount",
                          "@AccountId";

var results = context.Database.SqlQuery<int>(query,
                                             paramAccountId);
因此,我的帐户不会由存储过程完成更新,但是,当我对数据库运行查询时,记录会被更新。所以我的问题出在E.F上,因为它没有得到数据库的更改


谢谢

如果您使用相同的上下文,它将不会意识到实体已更改,并将返回存储在内存中的相同本地对象,而不是再次查询数据库。在重新查询之前,您可以创建新的上下文,也可以分离以前的对象:


什么版本的实体框架?@DavidColwell我正在使用EF 6 Thanks是对
context.Accounts.Where(…)
的两个调用,在同一
中使用
语句?不,实际上问题是@jnovo下面回答了什么。无论如何,谢谢。我会尽量让你知道@jnovo
account = context.Accounts.where(_ => _accountId = 1).FirstOrDefault();
context.Detach(account);
account = context.Accounts.where(_ => _accountId = 1).FirstOrDefault();