实体框架未按预期运作

时间:2012-12-30 10:35:30

标签: c# entity-framework

我正在使用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部分时,它们运行良好。但是,当我只运行第2节时,标题不会改变,这意味着它甚至不返回单个项目,因此不会进入foreach循环。我不明白为什么它不会进入循环。

我意识到这个问题可能有一个明显的答案,但我认为我应该问一下stackoverflow而不是问一位同事,所以其他人有同样的问题可以找到答案。

我怀疑这个问题可能有线索:System.Data.Entity not working as expected for MVC Entity Framework。不幸的是,我似乎无法解决这个问题。

2 个答案:

答案 0 :(得分:1)

看起来行var db = new DatabaseEntities()正在连接到没有任何行的数据库。检查Connection的{​​{1}}属性,确保它位于正确的服务器/实例/文件中。

如果您在db上执行“快速观察”,您应该能够看到该表的内容。

答案 1 :(得分:1)

如果你只运行第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不会做很多的逻辑。

您是否检查过您的实际数据库以查看是否有任何记录?