如何将LINQ to SQL查询结果添加到Observable Collection?

时间:2010-01-02 11:11:11

标签: c# sql wpf linq linq-to-sql

在WPF应用程序中,我有一个Observable Collection,它通过数据绑定与ListView连接。我想将这个Observable Collection从LINQ填充到SQL查询,但没有成功。实际上我的代码甚至没有编译(我指出了带注释的问题行)。

底层Observable Collection Class的结构类似于我试图获取查询的SQL表的结构。

请问,我的做法有什么问题?

以下是我的代码的一部分:

ObservableCollection<ShowsQu> _ShowQuCollection =
            new ObservableCollection<ShowsQu>();

    public ObservableCollection<ShowsQu> ShowQuCollection
    { get { return _ShowQuCollection; } }

    public class ShowsQu
    {
        public string ShowCode { get; set; }
        public DateTime Date { get; set; }
        public TimeSpan Time { get; set; }
        public string Description { get; set; }
    }

    private void VisualizeAllShows()
    {

        MyfirstdbDataContext context = new MyfirstdbDataContext();
        _ShowQuCollection.Clear();

        var sh = from p in context.Shows select p;

        foreach (var p in sh)  
          _ShowCollection.Add(new ShowsQu
            {
                Date = sh.Date, //here is compile-time error
                Time = sh.Time, //here is compile-time error
                Description = sh.Description //here is compile-time error
            });
        }          
    }

1 个答案:

答案 0 :(得分:2)

Subst sh / psh是查询,p是当前迭代项:)

foreach (var p in sh)  {
    _ShowCollection.Add(new ShowsQu {
        Date = p.Date,
        Time = p.Time,
        Description = p.Description
    });
}

顺便说一下,你可以在这里使用foreach(var p in context.Shows) {...}