我正在使用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。不幸的是,我似乎无法解决这个问题。
答案 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不会做很多的逻辑。
您是否检查过您的实际数据库以查看是否有任何记录?