实体框架未按预期运行
本文关键字:运行 框架 实体 | 更新日期: 2023-09-27 17:50:21
我正在使用http://msdn.microsoft.com/en-us/data/jj591506上的教程自学实体框架。
using (var db = new DatabaseEntities())
{
// Section 1
var section = new Section
{
SectionID = 1,
SectionLetter = "d"
};
db.Sections.Add(section);
db.SaveChanges();
// Section 2
var query = from b in db.Sections
orderby b.SectionLetter
select b;
foreach (var item in query)
{
this.Title = item.SectionLetter;
}
}
当我将上面代码的第1节和第2节一起使用时,它们工作得很好。然而,当我只运行Section 2时,标题没有改变,这意味着它甚至没有返回单个项目,因此没有进入foreach循环。我不明白为什么它不能进入循环。
我意识到这个问题可能有一个明显的答案,但我认为我应该在stackoverflow上问,而不是问同事,这样其他人有同样的问题可以找到答案。
我怀疑在这个问题中可能有一个线索:System.Data.Entity不像MVC实体框架预期的那样工作。不幸的是,我似乎无法解决这个问题。
看起来行var db = new DatabaseEntities()
连接到没有任何行的数据库。检查db
的Connection
属性,确保它在正确的服务器/实例/文件上。
如果在query.ToArray()
上执行"Quick Watch",您应该能够看到表的内容。
您确定如果只运行第2部分:
var query = from b in db.Sections
orderby b.SectionLetter
select b;
, query
变量实际上产生的结果?您是否对其进行了调试,以便看到查询内部的内容?
var query = (from b in db.Sections
orderby b.SectionLetter
select b).ToList();
试试这个,并在它后面放一个断点。然后查看查询变量中有多少个元素。如果是0,那么从逻辑上讲,你的foreach不会做很多事情。
你有没有检查过你的实际数据库,看看里面是否有记录?