我一直在使用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)返回的相同内容的集合?看一下这些类型,看起来应该是这样。
之前有人见过这个吗?
答案 0 :(得分:2)
这是Simple.Data中的一个错误。现在在Nuget上固定在0.14.0.3。