2011-06-15 52 views
1

我有一个类:LINQ一个简单的问题

public class Post 
{ 
    public Oid Id { get; private set; } 

    public IList<Comment> Comments { get; set; } 
} 

public class Comment 
{ 
    public Guid Id { get; set; } 
    public DateTime TimePosted { get; set; } 
} 

如何在LINQ选择帖子发表的评论有e.g TimePosted> = DateTime.Now?

回答

5

鉴于Post对象的集合称为“posts”,你会做这样的事情:

var result = posts.Where(p => p.Comments.Any(c => c.TimePosted >= DateTime.Now)); 

请注意,这是方法的语法的一个例子。有关查询语法的示例,请参阅cybernate's answer

MSDN对这里提供的两种风格进行了比较:LINQ Query Syntax versus Method Syntax

2

试试这个:

from p in context.Posts 
from c in p.Comments 
where c.TimePosted >= DateTime.Now 
select p