Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.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# 当我更改任何行数据时,模型类不会更新_C#_Sql_Entity Framework - Fatal编程技术网

C# 当我更改任何行数据时,模型类不会更新

C# 当我更改任何行数据时,模型类不会更新,c#,sql,entity-framework,C#,Sql,Entity Framework,我有一个名为:webageroles的模型类,有一个名为isAccessable的布尔字段。现在我有了一个查询来选择值: var drafts = db.WebpageRoles.Where(d => d.PageId == pageid && d.RoleId == roID).ToList(); 当我构建它时,它返回isAccessable=true,但当我在数据库中手动将其更改为false时,查询返回相同的值(意思是true),但数据库包含false 当我再次构建它

我有一个名为:
webageroles
的模型类,有一个名为
isAccessable
的布尔字段。现在我有了一个查询来选择值:

var drafts = db.WebpageRoles.Where(d => d.PageId == pageid && d.RoleId == roID).ToList();
当我构建它时,它返回
isAccessable=true
,但当我在数据库中手动将其更改为
false
时,查询返回相同的值(意思是
true
),但数据库包含
false

当我再次构建它时,它会带来新的价值


这有什么问题吗?

非常确定您有一个长期运行的上下文“

也就是说,您的启动代码中有:
public static SomeDbContext MyGlobalContext=new SomeDbContext()


然后,在整个代码中使用
MyGlobalContext
。因此,您的上下文仅在启动时循环使用,并且大部分时间您访问的是本地缓存,而不是数据库。因此,数据库中的直接更改不会到达您的应用程序。

您的查询不包含
isaccessible
,因此我不理解这个问题。您使用的是哪种数据库?你是如何连接到它的?例如,您是否使用实体框架?是否确实已将值保存到数据库,并且正在再次执行查询(而不是将结果重新读取到上一个查询)?是否在project运行时编辑这些值?可能存在数据缓存。通常,实体框架会维护缓存层,直到您保存或更新数据为止,它不会更新缓存。请尝试从应用程序更新,然后尝试在运行应用程序时启动此函数,并返回数据库中的正确值。现在我更改了数据库中的一个值并再次触发,但并没有返回任何更改值。但当我停止应用程序并再次运行时,它将获得新的值。为什么?