Simple.Data延迟加载错误
问题描述:
我一直在玩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)返回的同一件事的集合?通过类型看,它看起来应该是。
以前有人看过这个吗?
答
这是Simple.Data中的一个错误。它现在在Nuget上固定在0.14.0.3。
谢谢,马克。 Simple.Data很高兴与您合作。 – 2012-02-02 12:08:54