代码之家  ›  专栏  ›  技术社区  ›  Seth Spearman

如何使用LINQ to SQL迭代DB记录?

  •  1
  • Seth Spearman  · 技术社区  · 14 年前

    asked on SO a few days ago 围绕最近完成的数据库构建包装器最简单、最快的方法是什么?我接受了建议,并使用sqlmetal围绕我的数据库设计构建了linq类。

    现在我有两个问题。一,我不认识林肯。第二,我很震惊地意识到学习是多么的困难。我有一本关于Linq(Linq in Action by Manning)的书,它帮助了一些人,但到最后,我需要几个星期的时间来获得牵引力,今天我需要在我的项目上取得一些进展。

    所以,我正在寻找一些帮助开始。

    点击 HERE 查看我的简单数据库模式。
    点击 HERE 查看为架构生成的VB类。

    我的需求很简单。我有一个控制台应用程序。主表是supplymodel表。其他大多数表都是supplymodel表的子表。

    我想遍历每个供应模型记录。我想获取一个供应模型的数据,然后 多斯图夫 有了数据。我还需要遍历每个供应模型的子记录,例如numberedinventories和 多斯图夫 还有这个。

    如果可能的话,我需要在vb而不是c_中的帮助。我不是在寻找完整的解决方案…如果你能提供一些代码片段让我上路,那就太好了。

    谢谢你的帮助。

    编辑
    为了记录,我已经写了以下代码…

    Dim _dataContext As DataContext = New DataContext(ConnectionStrings("SupplyModelDB").ConnectionString)
    Dim SMs As Table(Of Data.SupplyModels) = _dataContext.GetTable(Of Data.SupplyModels)()
    Dim query = From sm In SMs Where sm.SupplyModelID = 1 Select sm
    

    这段代码正在工作…我有一个查询对象,我可以使用ObjectDumper枚举和转储数据…但我仍然无法理解它…因为ObjectDumper使用反射和其他语言构造,而我没有得到。它确实像我想要的那样枚举父数据和子数据(当级别为2时)。

    请帮忙……我卡住了。救命!

    塞思

    1 回复  |  直到 14 年前
        1
  •  2
  •   Andrew Lewis    14 年前

    在c中,它是:

        var result = from s in _dataContent.SupplyModels where s.SupplyModelID==1 select s;
        foreach(SupplyModel item in result)
        {
           // do stuff
           foreach(SupplyModelChild child in item.SupplyModelChilds)
           {
              //do more stuff on the child
           }
        }
    

    和一个vb.net版本(来自telerik代码转换器)

    Dim result As var = From s In _dataContent.SupplyModels _
        Where s.SupplyModelID = 1 _
        Select s
    For Each item As SupplyModel In result
        ' do stuff
                'do more stuff on the child
        For Each child As SupplyModelChild In item.SupplyModelChilds
        Next
    Next