ASP.NET MVC:获取多对多表的值

时间:2009-10-30 12:55:05

标签: asp.net-mvc entity-framework

  • 我有一个包含“菜单”的表格 餐厅菜单的名称。
    • 我还有一张桌子'成分' 含有成分 可用于菜单。

我将'菜单'表中的值变为IQueryable类(PropAllMenus)时没有任何问题

Public Class PropAllMenus
Private _MenuID As Integer
Public Property MenuID() As Integer
    Get
        Return _MenuID
    End Get
    Set(ByVal value As Integer)
        _MenuID = value
    End Set
End Property

Private _Name As String
Public Property Name() As String
    Get
        Return _Name
    End Get
    Set(ByVal value As String)
        _Name = value
    End Set
End Property

Private _DaypartID As Integer
Public Property DaypartID() As Integer
    Get
        Return _DaypartID
    End Get
    Set(ByVal value As Integer)
        _DaypartID = value
    End Set
End Property

我只是在DBRepository类中使用此代码

Public Function ListAllMenus() As IQueryable(Of PropAllMenus) Implements IDBRepository.ListAllMenus

    Dim result = From p In _db.Menus Select New PropAllMenus With {.MenuID = p.MenuID, .Name = p.Name}
    Return result

End Function

这很好用。

  • 现在,我也有很多人 表' MenuIngredients '包含 Id的成分属于 菜单。

但是,我不知道我应该采取什么步骤:

  1. 使用LINQ查询查询数据库 获得所有菜单名称列表 他们的成分
  2. 填补新内容 IQuerable(of ...)类让我可以通过 它在我看来
  3. 我尝试使用类型为array的属性(包含菜单的成分),但这似乎不起作用。

1 个答案:

答案 0 :(得分:0)

你只需要在当前的Menu类中添加一个局部类,如下所示:

public partial class Books
    public property IEnumerable< Ingredient > Ingredients
     get

            return me. MenuIngredients.Select( function (mi) mi.Ingredient);
     end get

    end Property

    public sub AddIngredient( i as Ingredient )
    //do the logic here
    End Sub

    public sub AddIngredient( i as Ingredient )
    //do the logic here
    End Sub

    End

这将包括菜单类中的成分