2013-07-13 32 views
0

我一直在發現與下面的代碼有關的問題。其實我想選擇篩選的記錄,但它給了我0條記錄。我已經嘗試了以下。請幫幫我..無法獲取IEnumerable類型使用LINQ篩選查詢

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 
}); 
} 

回答

2

爲什麼你的PostModel類對象會是等於字符串貓? 也許你的意思是:

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

即使你overrided equals方法上PostModel我認爲你應該使用我行上述meantioned,因爲它是比較明顯的。

同樣在查詢結束時,您應該調用.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; 
} 
+0

感謝好友我找到了解決方案使用您的建議.. –