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框架中实现这些
- 要了解如何在视图中使用数据集,请查看使用数据集作为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;
}