2013-04-17 52 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

对我来说很好。感谢您的更新和很好的解释.. –