2013-04-17 47 views
1

我有一個自定義類,如下所示如何使用Linq to Object訪問自定義類的屬性?

public class LogFiles 
{ 
    private string _fileName; 
    private string _path; 
    private string _logStatus; 

    public LogFiles(string FName, string Path) 
    { 
     this._path = Path; 
     this._fileName = FName;   
    } 
    // the below two properties are mapped from DB entities 
    public string FName 
    { 
     get { return this._fileName; } 
     set { this._fileName = value; } 
    } 
    public string Path 
    { 
     get { return this._path; } 
     set { this._path = value; } 
    }   
    // the value for this property will be defined on fly in MainViewModel 
    public string LogStatus 
    { 
     get { return this._logStatus; } 
     set { this._logStatus = value; } 
    } 
} 

我將設置爲我MainViewModel的LogStatus屬性的值,但使用LINQ

這樣的事情在MainviewModel訪問該屬性,

var get_logStatus = (from a in LogFiles 
        ordeyby a.LogStatus 
        select a); 

上面這段代碼只是將linq寫入實體的類似猜測,但自定義類可以通過linq訪問sql嗎? 請原諒我,並糾正這個問題,如果它聽起來很愚蠢。

回答

1

你說的是Linq To Object,因爲你想查詢對象,而不是你的DataContext生成的實體。

Linq To Object與Linq To Sql具有完全相同的語法(這就是製作Linq的要點!)。 Linq To Sql唯一的問題是查詢Queryable對象,就像實體的EntitySet一樣,而Linq To Object正在查詢IEnumerable對象。

所以首先你需要一個IEnumerable,那麼你可以讓你的Linq查詢是這樣的:

var listLogFiles = new List<LogFiles>(); 
var orderedListLogFiles = (from a in listLogFiles 
          order by a.LogStatus 
          select a); 
+0

對我來說很好。感謝您的更新和很好的解釋.. –