实体框架未按预期运行

本文关键字:运行 框架 实体 | 更新日期: 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()连接到没有任何行的数据库。检查dbConnection属性,确保它在正确的服务器/实例/文件上。

如果在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不会做很多事情。

你有没有检查过你的实际数据库,看看里面是否有记录?