c# - 无法使用集合初始值设定项初始化类型 'PeopleModel',因为它未实现 'System.Collections.IEnumerable'

标签 c# wpf mvvm

我有一个方法,旨在从 OleDB 填充 PersonModel;

public IEnumerable<PeopleModel> GetPeopleDetails()
{
    var constr = ConfigurationManager.ConnectionStrings["dbfString"].ConnectionString;
    using (var dbfCon = new OleDbConnection(constr))
    {
        dbfCon.Open();
        using (var dbfCmd = dbfCon.CreateCommand())
        {
            dbfCmd.CommandText = "SELECT pp_firstname, pp_surname, pp_title, pp_compnm, pp_hmaddr1, pp_hmaddr2, pp_hmtown, pp_hmcounty, pp_hmpcode, pp_spouse, pp_children FROM people ORDERBY pp_surname";
            using (var myReader = dbfCmd.ExecuteReader())
            {
                var peopleList = new List<PeopleModel>();
                while (myReader.Read())
                {
                    var details = new PeopleModel
                    {
                        details.Firstname = myReader[0].ToString(),
                        details.Lastname = myReader[1].ToString(),
                        details.Title = myReader[2].ToString(),
                        details.Company = myReader[3].ToString(),
                        details.Addr1 = myReader[4].ToString(),
                        details.Addr2 = myReader[5].ToString(),
                        details.Town = myReader[6].ToString(),
                        details.County = myReader[7].ToString(),
                        details.Spouse = myReader[8].ToString(),
                        details.Children = myReader[9].ToString(),                            
                    };
                    peopleList.Add(details);
                }
                return peopleList;
            }
        }
    }
} 

这段代码与我用来填写公司详细信息的方法几乎相同,这没有问题。这是我用来构建一个人的 PeopleModel。

namespace SdcDatabase.Model
{
    public class PeopleModel
    {
        public string Firstname { get; set; }
        public string Lastname { get; set; }
        public string Title { get; set; }
        public string Company { get; set; }
        public string Addr1 { get; set; }
        public string Addr2 { get; set; }
        public string Town { get; set; }
        public string County { get; set; }
        public string Spouse { get; set; }
        public string Children { get; set; }
    }
}

尽管公司方法以前运行良好,但现在当我在实现 People 代码后尝试构建项目时,出现以下错误:无法使用集合初始值设定项初始化类型“PeopleModel”,因为它没有实现'System.Collections.IEnumerable'

我真的对此感到迷茫,因为它对一家公司来说几乎是相同的方法。

最佳答案

正确的语法,没有细节。在初始化器的赋值中:

var details = new PeopleModel
{
    Firstname = myReader[0].ToString(),
    Lastname = myReader[1].ToString(),
    Title = myReader[2].ToString(),
    Company = myReader[3].ToString(),
    Addr1 = myReader[4].ToString(),
    Addr2 = myReader[5].ToString(),
    Town = myReader[6].ToString(),
    County = myReader[7].ToString(),
    Spouse = myReader[8].ToString(),
    Children = myReader[9].ToString(),                            
};

关于c# - 无法使用集合初始值设定项初始化类型 'PeopleModel',因为它未实现 'System.Collections.IEnumerable',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33256832/

相关文章:

c# - 层次结构违反了 Liskov - 那又怎样?

c# - 延迟绘制 WindowsFormsHost?

c# - 如何捕捉结束调整窗口?

wpf - 如何将 IsSelected 属性绑定(bind)到文本 block

wpf - WPF 数据绑定(bind)是否会将更改编码到 UI 线程?

c# - 如何将.exe从C++项目复制到C#项目的输出目录?

C# - 如何使用具有一个属性的接口(interface)在类之间进行通信

c# - -WPF Model-View-ViewModel- ListBox 的 ItemSources 在连接到数据库后可用

c# - Caliburn.Micro - 数据绑定(bind) contentpresenter 到 viewmodel

c# - 相当于c#中的AbstractTableModel