MVC4将用户信息放入usermodel

本文关键字:usermodel 信息 用户 MVC4 | 更新日期: 2023-09-27 18:13:22

这是userModel

public class userModel
    {
        public string userNo{ get; set; }
        public string userCode{ get; set; }     
        public string userName{ get; set; }     
        public string authtime{ get; set; }     
        public string duplLoginYn{ get; set; }  
        public string userLang{ get; set; }     
        public string siteLogo{ get; set; }     
        public string theme{ get; set; }        
        public string deptNo{ get; set; }       
        public string deptName{ get; set; }     
        public string usiteNo{ get; set; }
        public int connDur{ get; set; }      
        public string menuPosition{ get; set; } 
    }

这是login controller

public ActionResult login(string id, string pass, string scode)
        {            
            Dictionary<string, object> sessionData = null;
            userModel userInfo = new userModel();
            String SqlCommand = "USP_LOGIN";
            OleDbParameter[] arParms = new OleDbParameter[3];
            arParms[0] = new OleDbParameter("ID", id);
            arParms[1] = new OleDbParameter("PW", pass);
            arParms[2] = new OleDbParameter("SCODE", scode);
            try
            {
                DataSet UserInfo = dataController.ExecuteDataset(dataController.CONN_STRING, CommandType.StoredProcedure, SqlCommand, arParms);
                if (UserInfo.Tables[0].Rows.Count > 0)
                {
                    //sessionData = new Dictionary<string, object>();                    
                    for (int i = 0; UserInfo.Tables[0].Rows[0].Table.Columns.Count > i; i++)
                    {
                        sessionData.Add(UserInfo.Tables[0].Rows[0].Table.Columns[i].Caption, UserInfo.Tables[0].Rows[0].ItemArray[i]);
                    }
                    Session.Add("UserInfo", sessionData);
                }
                return RedirectToAction("main");
            }
            catch (Exception e)
            {
                //log
                return RedirectToAction("index.mon");
            }
        }

我想做的很简单,将数据集值放入userModel 。但是让我困扰的是数据集比模型拥有更多的项目。

当两个对象不相同时,我不知道如何匹配数据和设置值

我应该使用循环吗?或者是否存在任何类型转换对象来帮助映射数据?拜托!.NET框架中一定有一些有用的东西!如果您有更多的空闲时间,您知道在MVC4中获取数据的更好做法吗?

使用dataset对我来说看起来过时了。但我不想要任何第三方框架。只需在纯。net框架中实现这些

MVC4将用户信息放入usermodel

  • 要了解如何在视图中使用数据集,请查看使用数据集作为asp.net MVC 4项目中的数据模型
  • 和了解如何转换,看看如何返回一个数据集到一个视图。

我建议使用ORM(对象关系映射器),如Fluent NHibernate或实体框架,这正是它们的设计目的-将关系数据从数据库映射到c#对象。

我的首选是fluent nhibernate,你可以通过nuget安装它,并在https://github.com/jagregory/fluent-nhibernate/wiki/Getting-started查看入门指南

UPDATE: Pure .NET approach

如果你不想使用任何外部库,你可以编写一个简单的静态方法来将你的数据映射到一个对象,就像这样:

protected static userModel GetUserFromReader(SqlDataReader reader)
{
    var user = new userModel
    {
        userNo = reader["userNo"],
        userCode = reader["userCode"],
        userName = reader["userName"]
    };
    return user;
}