Vb.net 获取缓存的Linq2SQL计数?

Vb.net 获取缓存的Linq2SQL计数?,vb.net,linq-to-sql,Vb.net,Linq To Sql,我有一个非常简单的数据结构。我正在将SQLExpress与Linq2SQL和vb.net一起使用 **ParentClass** parentId name **ChildClass** childId name parentId (foreign key to parent table) dbml反映了这两个类,并且有一个单一的关联 到目前为止,一切顺利 在我的代码中,我试图得到如下值 Dim count as Integer = Parent.ChildClasses.Count

我有一个非常简单的数据结构。我正在将SQLExpress与Linq2SQL和vb.net一起使用

**ParentClass**
parentId
name


**ChildClass**
childId
name
parentId  (foreign key to parent table)
dbml反映了这两个类,并且有一个单一的关联

到目前为止,一切顺利

在我的代码中,我试图得到如下值

Dim count as Integer = Parent.ChildClasses.Count 
(答案是10,顺便说一句)。它一开始起作用。我加了五张儿童唱片。计数现在应该是15,但读数仍然是10。如果我重建解决方案并重新运行应用程序,它将正确显示15-至少在我开始添加更多记录之前


我敢肯定这是我在某个地方犯的一个非常严重的错误。这是一个延迟加载的函数还是我选错了树?

你的变量不会神奇地改变,因为上下文中的项目数改变了

延迟加载指的是,查询是按需要的单位进行计算的,但由于您正在分配一个需要并计算的变量值,因此检查该变量不会导致查询再次运行

这样做的一个好方法就是创建一个只读属性,并在每次需要时调用Count

Public ReadOnly Property Count As Integer
  Get
     Return Parent.ChildClasses.Count
  End Get
End Property

如何添加数据?是否从DataContext的不同实例添加记录?如果没有,请在代码中添加更多上下文。我刚刚意识到这个问题已经有一年半的历史了