代码之家  ›  专栏  ›  技术社区  ›  Aaron M

Linq对象持久性

  •  1
  • Aaron M  · 技术社区  · 17 年前

    此处使用以下代码

    Sub FooSub
    Dim db As New FooDataContext
    Dim u = From p In db.FooTable Where p.FooColumn = FooData Select p
    
    Do Stuff
    End Sub
    

    如果我想让它在应用程序中持久存在,是否必须手动创建一个类来映射我的Footable中的数据?如果我将u声明为类范围变量,那么一旦suboo结束,我就不能再访问u中的数据。

    1 回复  |  直到 17 年前
        1
  •  2
  •   Randolpho    17 年前

    事实上, u 只会 IQueryable<typeof(p)> . 在您尝试遍历该集合之前,甚至不会命中数据库。

    如果希望在关闭DataContext连接后使用某些对象,则需要调用 u.ToList 在关闭连接以获取结果列表之前。

    从那里,您可以随意更改对象本身。如果希望更改保留回数据库,请调用 db.SubmitChanges