简单.数据延迟加载错误



我一直在玩Simple.Data,遇到了一些我无法理解的东西。

在我的数据中,我有三个表:Hotel、Project和ProjectMilestone。一个酒店可以有多个项目,一个项目可以有多个子项目里程碑。我使用的是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"不包含"Project"的定义

但是,以下代码确实有效:

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().Take(100)返回的集合是否与FindByHotelID(1)返回的内容相同?通过查看类型,看起来它们应该是。

有人见过这个吗?

这是Simple.Data中的一个错误。它在0.14.0.3中被修复,现在在Nuget上。

最新更新