Simple.Data延迟加载错误

时间:2012-02-01 15:00:19

标签: sql-server 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'不包含'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)返回的相同内容的集合?看一下这些类型,看起来应该是这样。

之前有人见过这个吗?

1 个答案:

答案 0 :(得分:2)

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