首页 > 解决方案 > 如何使用 ADO.net 在视图中包含相关对象

问题描述

我正在使用 C# 和 ASP.NET MVC。通常我也使用实体框架,但最近我一直在使用 ADO.net 和 SQL。我的 ADO.NET 代码有问题:在 Entity Framework/LINQ 中解决问题我会使用Include关键字将相关数据包含到视图中,这样我就不会收到对象未引用错误,所以问题是如何我使用 ADO.NET 来做到这一点,这与IncludeADO.NET 和 SQL 中的 LINQ 关键字等效吗?

Include关键字的代码示例:

private Comment GetComment(int? id)       
{
     return id.HasValue ? Db.Comments.Where(x=> x.ID == id)
                                     .Include(y => y.Replies)
                                     .First() : new Comment { ID = -1 };
}

正如您从评论中看到的那样,我还从另一个相关的表中加载回复。

如何在 ADO.Net 和 SQL 中执行此操作?

标签: c#sqlasp.net-mvclinqado.net

解决方案


我认为问题在于我对包含意味着实体的经验。

所以在你的情况下:

Db.Comments.Where(x => x.ID == id)
           .Include("Replies")
           .First() : new Comment { ID = -1 };

并且您的数据模型中应该是关系:

public class Comments
{
    private readonly ObservableListSource<Replies> _replies =
                       new ObservableListSource<Replies>();
    
    public int ID { get; set; }
    // (other attributes)
    
    public virtual ObservableListSource<Replies> Replies
    { get { return replies; } }
}

推荐阅读