c# - 如何使用 ADO.net 在视图中包含相关对象
问题描述
我正在使用 C# 和 ASP.NET MVC。通常我也使用实体框架,但最近我一直在使用 ADO.net 和 SQL。我的 ADO.NET 代码有问题:在 Entity Framework/LINQ 中解决问题我会使用Include
关键字将相关数据包含到视图中,这样我就不会收到对象未引用错误,所以问题是如何我使用 ADO.NET 来做到这一点,这与Include
ADO.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 中执行此操作?
解决方案
我认为问题在于我对包含意味着实体的经验。
所以在你的情况下:
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; } }
}
推荐阅读
- excel - 尝试从 XLA 文件中的 XLSX 电子表格获取信息
- vb.net - MySql.Data.MySqlClient 显示令人困惑的错误
- c# - 为什么我不能使用 Microsoft.AspNetCore.Mvc;在我的单元测试项目中?
- python - Python将命名字符串字段转换为元组
- html - 如何让我的导航列表进入侧边栏汉堡菜单?
- python - 通过虚拟机运行程序时出错
- c - 返回主类时看不到相同的整数值
- javascript - Javascript Buildorder 的问题
- powershell - 两个 ForEach 循环,最后一个循环不正确
- python-3.x - 如何在 pandas 的 4 个数据帧上进行多种类型的连接