理解Entity Framework和IEnumerable

时间:2016-06-10 15:36:44

标签: vb.net entity-framework ienumerator

我不能在不久的任何时候调试,所以我想知道以下代码是否有意义。不熟悉IEnumerable,但我只是一名学生而我的老板告诉我使用它们。

感谢您的帮助,真的很感激! (VB.NET)(在对象之前只是为了存储它的副本,所以我可以在我的撤销按钮中使用)

 'Get from entity framework
        Dim IdNow As Integer = PartInfoNow.IdPartInfo
        Dim NowPartInfo As IEnumerable(Of PartInfo) = (From a In Db.PartInfo Where a.IdPartInfo = IdNow).ToList

        Dim StackUpNow As New ClsStackUp(SqlConnectionString, (New Settings1).ProgramAdmins)

        Dim Before As IEnumerable(Of PartInfo) = {NowPartInfo(0)}

1 个答案:

答案 0 :(得分:2)

代码是有道理的。

IEnumerable是一个非常常见的接口,只有一个方法" GetEnumerator()"。任何IEnumerable都可以在foreach循环中迭代。你在这里没有获得任何好处(除非你想要删除你从List类中获得的其他功能)。

让我们假设您有这种方法;

Private Sub SomeMethod(ByVal integers As List(Of Integer))

    For Each i As Integer In integers
        'do something with i
    Next

End Sub

此方法仅在您传递列表(Of Integer)或从列表(Of Integer)派生的类时才有效。如果你想传递一个整数数组,你不可能因为类型不匹配。但是如果你把方法改为这个;

Private Sub SomeMethod(ByVal integers As IEnumerable(Of Integer))

    For Each i As Integer In integers
        'do something with i
    Next

End Sub

你可以传递这个方法的各种整数集合(例如一个数组而不是一个列表)并且它能够处理它(只要每个集合类型实现IEnumerable接口,大多数都这样做)