【问题标题】:asp.net MVC fetching data with table relationsasp.net MVC 使用表关系获取数据
【发布时间】:2009-11-05 11:42:56
【问题描述】:

我创建了我的数据库,其中包含: 艺术家、曲目和 TracksPerArtists

我可以通过实体模型进行sql查询。例如当我制作:

database.TRACK.ToList()

例如,我得到要在索引视图上显示的曲目列表。但是我的外键是空的。虽然有艺术家和曲目,以及 ArtistsPerTrack 的正确行,但我的 track.ToList() 集合中的此项为空。

是否有不同的方法来获取这些数据?

我来自 cakePHP 框架,您可以在其中定义 Model.recursive 属性来声明要获取的关系的深度。

这里有类似的吗?

【问题讨论】:

    标签: asp.net entity-framework


    【解决方案1】:

    有类似的东西。 如果“database”是DataContext并且Artist和Tracks在数据库中有多对多的关系,你可以使用Include子句获取相关实体:

    database.TRACK.Include("Artists").ToList()

    其中“Artists”是 Track 实体上的属性名称。

    【讨论】:

    • 现在我的 ViewData.Model 有一个非 null ArtistsPerTrack 字段,但是虽然 ArtistsPerTrack.track 充满了曲目详细信息,但 ArtistsPerTrack.Artist 为 null :(
    • 我不确定您的实体是如何关联的,但也许您应该加载 ArtistsPerTrack 并包含艺术家和曲目:database.ArtistsPerTrack.Include("Artist").Include("Track").ToList ()。您也可以在访问 ArtistsPerTrack.Artist 属性之前调用 ArtistsPerTrack.ArtistReference.Load()。
    • 您对我的数据库关联的假设是正确的!然而,当我想显示 Track/Index 页面时,加载 Track 模型是很自然的,对吧?因此,如果我执行 db.Artist.Include("artistPerTrack").ToList() 你说我应该同时获得 Tracks 和每首曲目的 Artist 信息?
    猜你喜欢
    • 2016-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-20
    相关资源
    最近更新 更多