C# 实体框架从Azure DB返回每个表,而不是一个表

C# 实体框架从Azure DB返回每个表,而不是一个表,c#,asp.net,json,entity-framework,azure,C#,Asp.net,Json,Entity Framework,Azure,我正在使用ASP.NET和现有的Azure DB构建一个Web Api。我遇到了实体框架和Azure DB的问题。我使用ADO.NET从数据库中生成所有模型类,代码版本为第一版 这是使用ADO.NET生成的my dbcontext的一个片段: public IntelliMonDbContext() : base("name=IntelliMonDbContext") { } public virtual DbSet<

我正在使用ASP.NET和现有的Azure DB构建一个Web Api。我遇到了实体框架和Azure DB的问题。我使用ADO.NET从数据库中生成所有模型类,代码版本为第一版

这是使用ADO.NET生成的my dbcontext的一个片段:

public IntelliMonDbContext()
            : base("name=IntelliMonDbContext")
        {
        }

        public virtual DbSet<C__MigrationHistory> C__MigrationHistory { get; set; }
        public virtual DbSet<Device> Devices { get; set; }
public IntelliMonDbContext()
:base(“name=IntelliMonDbContext”)
{
}
公共虚拟数据库集C__迁移历史{get;set;}
公共虚拟数据库集设备{get;set;}
在所有dbset属性之后,有一个名为OnModelCreating的方法。我真的不确定它是做什么的,但因为它是生成的,我不认为这就是我的方法所在

我的问题是,在我的DeviceController中,我试图以JSON格式返回我所有设备的列表,但它返回Azure DB中的所有表。我尝试在db中查询其他表而不是设备,但得到了完全相同的结果。即使我尝试使用特定的设备id进行请求,我也会在一个JSON对象中获取所有表

// GET: api/Devices
        public IEnumerable<Device> GetDevices()
        {
            return db.Devices.ToList();
        }
//GET:api/Devices
公共IEnumerable GetDevices()
{
返回db.Devices.ToList();
}
我以前使用过lokal Db和实体框架,从未遇到过任何问题。我不明白上面的查询如何在一个JSON对象中为我提供数据库中的所有表。在使用ADO.NET生成模型时,我是否错过了一个关键步骤?这里可能有什么问题?我已经尽了最大努力搜索类似的帖子,但我找不到任何匹配的帖子,因为这感觉像是一件简单的事情,不应该出错


如果需要的话,我会提供更多信息。

原来是对象内部的ICollections在做这件事。我只是按照另一个用户的建议从属性中删除了virtual,但是我错过了ADO.NET自动生成的ICollections


谢谢您的帮助。

听起来像是迫不及待地想加载。除非您正在做一些高级或模拟的事情,否则请尝试从数据库集中删除虚拟。我尝试过,但结果完全相同。。还有其他建议吗?我不明白问题是什么。我已经和当地的dbs合作过很多次了,从来没有遇到过这样的问题。@Maarten谢谢你的回答。有什么建议可以帮助我解决这个问题吗?