缓存在.dll与asp.net



我有一个使用vs2010开发的dll的网站。

在dll中,我有一个方法C.GetData(int id)返回我的对象的IEnumerable集合。当我使用中继器显示数据时,我看到的是"旧"数据。例如,在数据库中,我有name=Maurox,但在.aspx页面中,我看到name=Pippo,这是更新前字段的旧值。

如果我使用相同的查询(从方法C.GetDate复制/粘贴)数据是ok的,我看到name=Maurox在5页。

下面是一个例子:

与C.GetData()我有这一行(错误)51 Via Roma佛罗伦萨00100

与"inline" linq(复制/粘贴linq查询后面的代码),我有:51
Via罗马佛罗伦萨00101

查询很简单:

from c in db.ContattiRecapiti
join cc in db.Contatti on c.idcontatto equals cc.IDContatto
join aa in db.aspnet_Membership on cc.aspnet_UserId equals aa.UserId
where cc.aspnet_UserId == UserId && cc.Attivo == 1 && aa.IsApproved == true && c.attivo == 1
select c

我怎么能解决这个问题?有缓存吗??

谢谢!

如果使用LINQ to SQL或实体框架,则有一个内部对象缓存,它是数据/对象上下文使用的工作单元模式的实现。你可以尝试调用Refresh()方法,看看它是否为你刷新数据…

还有,你如何存储你的数据/对象上下文?是全局存储,还是为每个LINQ查询存储?

您确定您正在正确调用函数吗?请确保您调用的函数显示…你可以在ispostback函数或其他地方使用它。我不认为在dll中有一个单独的缓存。浏览器缓存可能未被清除。此外,请在刷新(ctrl+F5)页面

后检查数据。

最新更新