使用 DBContext 的 SQL 数据库未返回任何数据
No Data is being returned from SQL Database using DBContext
我正在创建一个使用 Bing 地图和 ASP.Net 绘制路线的系统。我想将路线上停靠点的邮政编码存储在 SQL 数据库中,并使用 MVC 将它们传递给视图。
但是,查询数据库不会return任何结果,即使数据库已填充。我在代码的各个部分使用了 Debug.WriteLine 并推断出虽然它正在连接到数据库并查询正确的 table,但当我在我的控制器中初始化 DBContext 时,使用 ToList.Count
它显示 0.
我的代码如下:
控制器 - MapController.cs
private StopsDBContext db = new StopsDBContext();
public ActionResult Index()
{
Debug.WriteLine("***************************************************************************************");
Debug.WriteLine("--->" + db.Stops.ToList().Count + "<---"); // this shows 0
Debug.WriteLine("***************************************************************************************");
var Stops = from e in db.Stops
select e;
List<Stop> Model = Stops.ToList();
return View(Model);
}
型号 - Stop.cs
public class Stop
{
public int ID { get; set; }
public string Name { get; set; }
public string Postcode { get; set; }
public Stop(int iD, string name, string postcode)
{
ID = iD;
Name = name;
Postcode = postcode;
}
public Stop() {}
}
public class StopLists
{
public IEnumerable<Stop> StopList { get; set; }
}
public class StopsDBContext : DbContext
{
public StopsDBContext()
{
Database.Log = s => Debug.WriteLine(s); //this shows the sql queries in the console
}
public DbSet<Stop> Stops { get; set; }
}
我在执行此操作之前已将硬编码数据传递到视图中,所以我知道那部分是正确的,并且由于它是 运行 查询,所以它必须连接到数据库,所以我不确定我要做什么失踪了。
提前致谢
编辑: 根据 Dai
的建议更新了 类
我认为你应该像这样使用构造函数:
public StopsDBContext() : base("name=Connectionname")
我现在已经解决了错误。感谢所有回复您的建议的人。
原来我的模型和我的 table 有不同的字段,我没有意识到,所以 DBContext 正在搜索不存在的字段。哎呀
我正在创建一个使用 Bing 地图和 ASP.Net 绘制路线的系统。我想将路线上停靠点的邮政编码存储在 SQL 数据库中,并使用 MVC 将它们传递给视图。
但是,查询数据库不会return任何结果,即使数据库已填充。我在代码的各个部分使用了 Debug.WriteLine 并推断出虽然它正在连接到数据库并查询正确的 table,但当我在我的控制器中初始化 DBContext 时,使用 ToList.Count
它显示 0.
我的代码如下:
控制器 - MapController.cs
private StopsDBContext db = new StopsDBContext();
public ActionResult Index()
{
Debug.WriteLine("***************************************************************************************");
Debug.WriteLine("--->" + db.Stops.ToList().Count + "<---"); // this shows 0
Debug.WriteLine("***************************************************************************************");
var Stops = from e in db.Stops
select e;
List<Stop> Model = Stops.ToList();
return View(Model);
}
型号 - Stop.cs
public class Stop
{
public int ID { get; set; }
public string Name { get; set; }
public string Postcode { get; set; }
public Stop(int iD, string name, string postcode)
{
ID = iD;
Name = name;
Postcode = postcode;
}
public Stop() {}
}
public class StopLists
{
public IEnumerable<Stop> StopList { get; set; }
}
public class StopsDBContext : DbContext
{
public StopsDBContext()
{
Database.Log = s => Debug.WriteLine(s); //this shows the sql queries in the console
}
public DbSet<Stop> Stops { get; set; }
}
我在执行此操作之前已将硬编码数据传递到视图中,所以我知道那部分是正确的,并且由于它是 运行 查询,所以它必须连接到数据库,所以我不确定我要做什么失踪了。
提前致谢
编辑: 根据 Dai
的建议更新了 类我认为你应该像这样使用构造函数:
public StopsDBContext() : base("name=Connectionname")
我现在已经解决了错误。感谢所有回复您的建议的人。
原来我的模型和我的 table 有不同的字段,我没有意识到,所以 DBContext 正在搜索不存在的字段。哎呀