我一直在寻找与以下代码相关的问题。实际上我想选择过滤的记录,但它给了我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
});
}
答案 0 :(得分:2)
为什么你的PostModel
类对象是Equals string cat?
也许你的意思是:
data.PostTables.Where(Post => Post.CategoryName == cat)
即使你在PostModel
上覆盖了Equals方法,我认为你应该使用上面提到的第一行,因为它更明显。
同样在查询结束时,您应该调用.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;
}