我不知道我做错了什么:“我认为我是”或我都创下了亚音速限制。 我有3个表文章,ArticleCategories和ArticleComments有一个到另一个表文章之间多对多的关系。 我已经创建了下面的类亚音速一对多的关系的子对象
public partial class Article
{
private string _CategoryName;
public string CategoryName
{
get { return _CategoryName; }
set
{
_CategoryName = value;
}
}
public ArticleCategory Category { get;set;}
private List<System.Linq.IQueryable<ArticleComment>> _Comments;
public List<System.Linq.IQueryable<ArticleComment>> Comments
{
get
{
if (_Comments == null)
_Comments = new List<IQueryable<ArticleComment>>();
return _Comments;
}
set
{
_Comments = value;
}
}
}
我用这个片段
var list = new IMBDB().Select.From<Article>()
.InnerJoin<ArticleCategory>(ArticlesTable.CategoryIDColumn, ArticleCategoriesTable.IDColumn)
.InnerJoin<ArticleComment>(ArticlesTable.ArticleIDColumn,ArticleCommentsTable.ArticleIDColumn)
.Where(ArticleCategoriesTable.DescriptionColumn).IsEqualTo(category).ExecuteTypedList<Article>();
list.ForEach(x=>x.CategoryName=category);
list.ForEach(y => y.Comments.AddRange(list.Select(z => z.ArticleComments)));
我得到收集好的,但得到的文章的集合,当我尝试使用使用
foreach (IMB.Data.Article item in Model)
的评论集
{
%>
<%
foreach (IMB.Data.ArticleComment comment in item.Comments)
{
%>
***<%=comment.Comment %>***
<%}
} %>
的comment.Comment线引发此异常 无法转换类型的对象 'SubSonic.Linq.Structure.Query`1 [IMB.Data.ArticleComment]' 为类型“IMB.Data。 ArticleComment”。
我基本上是试图避免每次需要评论时都击中数据库。 是否有另一个实现这一目标? 谢谢
戴夫,当我做了推荐的更改,我得到一个演员异常 – Sammy 2009-12-28 00:00:07
相同的代码工作正常在同一地点相同的演员异常? – 2009-12-28 00:23:03
不能从 System.Collections.Generic.IEnumarable>转换为 System.Collections.Generic.IEnumarable 引起这行 列表.ForEach(y => y.Comments.AddRange(list.Select(z => z.ArticleComments))); –
Sammy
2009-12-28 00:44:24