2012-02-01 61 views
0

我一直在玩Simple.Data,并且遇到了一些我无法理解的东西。Simple.Data延迟加载错误

在我的数据中,我有三个表格:Hotel,Project和ProjectMilestone。酒店可以有多个项目,一个项目可以有多个ProjectMilestones。我正在使用SQL Server,并且这些表以标准方式由外键关联。

当使用Simple.Data,下面的代码将无法正常工作:

var db = Database.Open(); 
var hotels = db.Hotel.All().Take(100); 

foreach (var hotel in hotels) 
{ 
    foreach (var project in hotel.Project) 
    { 
     foreach (var projectMilestone in project.ProjectMilestone) 
     { 
      //Do something here 
     } 
    } 
} 

它抛出一个错误,指出:

'Simple.Data.SimpleRecord' 不包含一个定义'项目'

但是,下面的代码做的工作:

var db = Database.Open(); 
var hotel = db.Hotel.FindByHotelID(1); 

foreach (var project in hotel.Project) 
{ 
    foreach (var projectMilestone in project.ProjectMilestone) 
    { 
     //Do something here 
    } 
} 

我完全不理解这一点。在我看来,如果第二个工作,第一个工作也应该如此。是由All()返回的集合。取(100)不是FindByHotelID(1)返回的同一件事的集合?通过类型看,它看起来应该是。

以前有人看过这个吗?

回答

2

这是Simple.Data中的一个错误。它现在在Nuget上固定在0.14.0.3。

+0

谢谢,马克。 Simple.Data很高兴与您合作。 – 2012-02-02 12:08:54