【问题标题】:How to add LINQ to SQL query results to Observable Collection?如何将 LINQ to SQL 查询结果添加到 Observable Collection?
【发布时间】:2010-12-31 18:26:57
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

    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) {...}

    【讨论】:

    • 是的。非常感谢!有用。我做了一个多么愚蠢的 mitake,几个小时都无法对其进行本地化!
    • 新鲜的眼睛通常很有用;-p
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多