我正在获得一个实体:
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);
之后我想让我的帐户实体获得新的更改:
account = context.Accounts.where(_ => _accountId = 1).FirstOrDefault();
因此,我的帐户无法通过存储过程完成更新,但是当我对数据库运行查询时,记录会更新。所以我的问题出现在E.F上,因为它没有让数据库发生变化。
由于
答案 0 :(得分:1)
如果您使用相同的上下文,它将不会意识到实体已更改,它将返回存储在内存中的相同本地对象,而不是再次查询数据库。在重新查询using Detach
之前,您可以创建一个全新的上下文或分离之前的对象:
context.Detach(account);
account = context.Accounts.where(_ => _accountId = 1).FirstOrDefault();