如何使用Linq to Object访问自定义类的属性?

时间:2013-04-17 10:18:37

标签: c# linq linq-to-sql

我有一个自定义类,如下所示

  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 个答案:

答案 0 :(得分: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);