我在实体层定义了两个类UserInfo和UserInfoList
UserInfo用来get、set用户信息,如姓名、密码等
UserInfoList是这样的:
namespace User.Model
{
    /// <summary>
    /// UserInfo的列表
    /// </summary>
    public class UserInfoList : List<UserInfo>
    {
    }
}然后在数据访问层定义了一个读取数据库并返回用户列表的类Users:
namespace User.DAL
{
    public class Users
    {
        public List<Model.UserInfoList> MyQuery(String filter = "", SqlCommand cmd = null)
        {
            ...
            DataTable dt
            Model.UserInfoList mdls = new Model.UserInfoList();
            foreach (DataRow dr in dt.Rows)
            {
                Model.UserInfo mdl = new Model.UserInfo();                mdl.uName = dr["uName"].ToString();
                mdl.uPwd = dr["uPwd"].ToString();
                mdl.bStop = dr["bStop"].ToString().ToLower() == "true" ? true : false;
                mdls.Add(mdl);
            }
            return mdls; //~~~~~~~这里报错!
        }
    }
}结果返回值上mdls报错:
怎么回事?

解决方案 »

  1.   

    傻了吧,返回类型是List<Model.UserInfoList>,mdls不是List<Model.UserInfoList>类型
    List<Model.UserInfoList> list=new List<Model.UserInfoList>();Model.UserInfoList mdls = new Model.UserInfoList();
                foreach (DataRow dr in dt.Rows)
                {
                    Model.UserInfo mdl = new Model.UserInfo();                mdl.uName = dr["uName"].ToString();
                    mdl.uPwd = dr["uPwd"].ToString();
                    mdl.bStop = dr["bStop"].ToString().ToLower() == "true" ? true : false;
                    mdls.Add(mdl);
                }
    list.Add(mdls);应该是这样吧。
      

  2.   

    List<Model.UserInfoList> => List<UserInfo>
      

  3.   

    唉~~俺太菜了,见笑了。再问一下,把UserInfoList定义成集合应该怎么定义?
    定义成集合,代码应该会简单些吧。
      

  4.   

    public class UserInfoList : ICollection<UserInfo>不过没有什么必要。List已经实现了ICollection<UserInfo>
      

  5.   

    List<Model.UserInfoList> != List<UserInfo>
      

  6.   

     public List<Model.UserInfoList> MyQuery(String filter = "", SqlCommand cmd = null) public Model.UserInfoList MyQuery(String filter = "", SqlCommand cmd = null)