0

我一直在寻找与以下代码相关的问题。实际上我想选择过滤的记录,但它给了我 0 条记录。我尝试了以下方法。请帮我..

public static IEnumerable<PostModel> GetPostData(string cat)
{
var data = new LinqClassDataContext();                                                   IEnumerable<PostModel> pm;
pm=data.PostTables.Where(Post => new PostModel
{ CategoryName= Post.CategoryName}.Equals(cat)).Select
(Post => new PostModel 
{     PostID = (int)Post.PostID, 
      PostSubject = Post.PostSubject,
      PostAuthor = Post.PostAuthor, 
      PostDate = Post.PostDate, 
      PostContent = Post.PostContent, 
      CategoryName = Post.CategoryName
});
}
4

1 回答 1

2

为什么你的PostModel类对象会是 Equals string cat?也许你的意思是:

data.PostTables.Where(Post => Post.CategoryName == cat)

即使您重写了 Equals 方法,PostModel我认为您应该使用我上面提到的行,因为它更明显。

同样在查询结束时,您应该调用.ToList()方法来启动它。您应该在方法中创建上下文后处理它。

public static IEnumerable<PostModel> GetPostData(string cat)
{
   var data = new LinqClassDataContext();                                                   
   var pm = data.PostTables.Where(post => post.CategoryName == cat)
                         .Select(Post => new PostModel 
                                {     
                                   PostID = (int)Post.PostID, 
                                   PostSubject = Post.PostSubject,
                                   PostAuthor = Post.PostAuthor, 
                                   PostDate = Post.PostDate, 
                                   PostContent = Post.PostContent, 
                                   CategoryName = Post.CategoryName
                                })
                         .ToList();
   data.Dispose();
   return pm;
}
于 2013-07-13T14:26:53.257 回答