如何使用Linq-to-sql迭代db记录?

时间:2010-04-14 02:10:32

标签: vb.net linq linq-to-sql

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

现在我有两个问题。一,我不知道LINQ。而且,二,我很震惊地意识到学习有多难。我有一本关于LINQ(Manning的Linq In Action)的书,它已帮助了一些人,但最终我需要花费几周时间来获得牵引力,我今天需要在我的项目上取得一些进展。

所以,我正在寻找一些帮助入门。

单击HERE查看我的简单数据库架构 单击HERE以查看为架构生成的vb类。

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

我想遍历每个Supply Model记录。我想获取供应模型的数据,然后使用数据 DoStuff 。我还需要为每个供应模型迭代子记录,例如NumberedInventories和 DoStuff

如果可能的话,我需要在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使用反射和其他语言结构我不要。它可以像我想要的那样枚举父数据和子数据(当level = 2时)。

请帮助......我被困住了。救命啊!

赛斯

1 个答案:

答案 0 :(得分:2)

在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