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();