我刚刚创建了一个VS 2013 WebApi 2.0项目。我添加了一个DataContext并定义了一个DbSet和Model。我添加了一个控制器来测试它,但我没有得到任何数据。我做了很多次,但我无法弄清楚我在做什么。
我的DataContext
public class DriverAlertContext : DbContext
{
public DriverAlertContext() : base("DefaultConnection") { }
public DbSet<Companies> Companies { get; set; }
public DbSet<Drivers> Drivers { get; set; }
public DbSet<Vehicles> Vehicles { get; set; }
}
我的控制器
[HttpGet]
public IEnumerable<Companies> Get()
{
var x = db.Companies;
return x;
}
我得到一个空集[]作为回复。当我浏览数据表时,我看到了数据。我的连接字符串是正确的。我忘记了什么?
答案 0 :(得分:0)
您的问题似乎是懒惰的评价。实体框架实际上并没有从数据库中提取任何内容,直到您通过迭代set或调用dbset上的load方法(或许多其他可能的东西)来请求它。
调用ToList是一种简单的方法,可以强制Entity Framework执行查询并将数据从数据库中提取到内存中。
尝试
db.Companies.Select(x=>x).ToList();