【发布时间】:2017-04-19 12:16:48
【问题描述】:
我正在使用 ASP.NET 和现有的 Azure DB 构建 Web Api。我遇到了实体框架和 Azure DB 的问题。我使用 ADO.NET 从数据库中生成所有模型类,代码优先版本..
这是我使用 ADO.NET 生成的 dbcontext 的 sn-p:
public IntelliMonDbContext()
: base("name=IntelliMonDbContext")
{
}
public virtual DbSet<C__MigrationHistory> C__MigrationHistory { get; set; }
public virtual DbSet<Device> Devices { get; set; }
在所有 dbset 属性之后,有一个名为 OnModelCreating 的方法。我不太确定那个是做什么的,但由于它是生成的,我认为这不是我的方法所在。
我的问题是,在我的 DevicesController 中,我试图以 JSON 格式返回我所有设备的列表,但它返回的是我的 Azure DB 中的所有表。我尝试查询数据库中的其他表而不是设备,但我得到了完全相同的结果。即使我尝试使用特定的设备 ID 进行请求,我也会在一个 JSON 对象中获得所有表。
// GET: api/Devices
public IEnumerable<Device> GetDevices()
{
return db.Devices.ToList();
}
我以前使用过 lokal Db 和实体框架,但从未遇到任何问题。我不明白上面的查询如何在一个 JSON 对象中为我提供数据库中的所有表。使用 ADO.NET 生成模型时,我是否错过了关键步骤?这里可能是什么问题?我已经尽我所能搜索类似的帖子,但我找不到任何匹配的内容,因为这感觉它是一件不应该出错的简单事情。
如果需要,我会提供更多信息。
【问题讨论】:
-
对我来说听起来像是急切的加载。
-
除非您正在做一些高级或模拟操作,否则请尝试从 DbSet 中移除虚拟。
-
我试过了,但我的结果完全一样..还有其他建议吗?我不明白问题是什么。我与本地数据库合作过很多次,没有遇到过这样的问题。
-
@Maarten 谢谢你的回答。关于我应该做些什么来解决它的任何建议?
标签: c# asp.net json entity-framework azure