1
我的模型定義如下:在用戶日誌表的類型字段asp.net mvc - 如何使用枚舉字段保存模型?
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; }
}
}
基類型是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;
}
}
和登錄信息庫的代碼如下:
public void AddUserLog(string username, UserLog log)
{
User user = GetUserByUserName(username);
if (user != null)
user.UserLogs.Add(log);
}
的問題是,信息被正確地存儲在用戶日誌表,但類型現場仍然空!
是否使用實體框架? LINQ到SQL?還有別的嗎?什麼版本?你在使用Sql Server嗎? MySQL的? Add()是做什麼的?我們無法看到您的存儲庫如何運行......您沒有包含該代碼。 –
如果您使用的是最新版本的EF,聽起來像這樣是您的問題:http://stackoverflow.com/questions/13318782/tinyintbyte-smallintint16-not-compatible-with-enum-in-ef5枚舉類型是,默認的類型爲int ... –
我正在使用EF,問題已解決,謝謝。 – farzad