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

时间:2017-04-19 12:16:49

标签: c# asp.net json entity-framework azure

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

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

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数据库中的所有表。我试过尝试查询数据库中的其他表而不是设备,但我得到了完全相同的结果。即使我尝试使用特定的设备ID进行请求,我也会在一个JSON对象中获取所有表。

// GET: api/Devices
        public IEnumerable<Device> GetDevices()
        {
            return db.Devices.ToList();
        }

之前我曾与lokal Db和实体框架合作过,我从来没有遇到任何问题。我不明白上面的查询如何在一个JSON对象中给我DB中的所有表。在使用ADO.NET生成模型时,我是否错过了一个重要的步骤?这可能是什么问题?我已经尽力寻找类似的帖子,但我找不到任何匹配的东西,因为这感觉就像这样一个简单的事情,不应该出错。

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

1 个答案:

答案 0 :(得分:0)

原来是这样做的对象里面的ICollections。我只是按照其他用户的建议从属性中删除了虚拟,但我错过了ADO.NET自动生成的ICollections。

感谢您的帮助。

相关问题