【发布时间】:2009-10-21 23:42:39
【问题描述】:
我正在使用 SubSonic 3.0.0.3 ActiveRecord 构建一个小项目,但遇到了一个似乎无法解决的问题。
这是 LINQ 查询:
var result = from r in Release.All()
let i = Install.All().Count(x => x.ReleaseId == r.Id)
where r.ProductId == productId
select new ReleaseInfo
{
NumberOfInstalls = i,
Release = new Release
{
Id = r.Id,
ProductId = r.ProductId,
ReleaseNumber = r.ReleaseNumber,
RevisionNumber = r.RevisionNumber,
ReleaseDate = r.ReleaseDate,
ReleasedBy = r.ReleasedBy
}
};
ReleaseInfo 对象是一个自定义类,如下所示:
public class ReleaseInfo
{
public Release Release { get; set; }
public int NumberOfInstalls { get; set; }
}
Release 和 Install 是 SubSonic 生成的类。
当我查看结果时,Release 属性为空。
如果我将其设为更简单的查询并观察结果,则该值不为空。
var result = from r in Release.All()
let i = Install.All().Count(x => x.ReleaseId == r.Id)
where r.ProductId == productId
select new Release
{
Id = r.Id,
ProductId = r.ProductId,
ReleaseNumber = r.ReleaseNumber,
RevisionNumber = r.RevisionNumber,
ReleaseDate = r.ReleaseDate,
ReleasedBy = r.ReleasedBy
};
这是我的 LINQ 查询的问题还是 SubSonic 的限制?
【问题讨论】:
-
在构建 ReleaseInfo 对象之前,您是否尝试过使用更简单的查询来创建临时变量(使用
let)? -
即使我从查询中取出 let 部分,我也有同样的问题。
标签: c# linq subsonic subsonic3