gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 13:27:14 25 4
gpt4 key购买 nike

我得到一个实体:

Account account;

account = context.Accounts.where(_ => _accountId = 1).FirstOrDefault();

然后我正在运行一个正在更改我的帐户表上的数据的存储过程:

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 上,因为它没有让数据库发生变化。

谢谢

最佳答案

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

context.Detach(account);
account = context.Accounts.where(_ => _accountId = 1).FirstOrDefault();

关于c# - E.F 上下文 - 存储过程和查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21986162/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com