【发布时间】:2015-03-09 05:19:32
【问题描述】:
我的模型定义如下:
namespace Project.Models
{
public enum LogType
{
Login = 0,
Login_Fail = 1
}
[Table("UserLog")]
public class UserLog
{
public long Id { get; set; }
public int UserId { get; set; }
public DateTime Date { get; set; }
public string Des { get; set; }
public LogType Type { get; set; }
public virtual User User { get; set; }
}
}
UserLog表中Type字段的基本类型是tinyint。
登录控制器代码如下:
[HttpPost]
public virtual JsonResult Login(UserViewModel model)
{
if (userRepository.CheckUserLogin(model.UserName, model.Password))
{
UserLog log = new UserLog();
log.Date = DateTime.Now;
log.Des = "";
log.Type = LogType.Login;
userRepository.AddUserLog(model.UserName, log);
userRepository.Save();
Session["LoginUser"] = model.UserName;
}
}
和Login Repository代码如下:
public void AddUserLog(string username, UserLog log)
{
User user = GetUserByUserName(username);
if (user != null)
user.UserLogs.Add(log);
}
问题是信息正确存储在UserLog表中,但Type字段仍然Null!
【问题讨论】:
-
你在使用实体框架吗? LINQ到SQL?还有什么?什么版本?你在使用 Sql Server 吗? MySQL? Add() 是做什么的?我们看不到您的存储库是如何运行的……您没有包含该代码。
-
如果您使用的是最新版本的 EF,听起来这是您的问题:stackoverflow.com/questions/13318782/… 枚举类型默认为 int 类型...
-
我正在使用EF,问题已解决,谢谢。
标签: asp.net asp.net-mvc enums repository-pattern