我一直有枚举不映射在实体框架5(它支持枚举)的问题。
当我调用results.Where(r => r.Category = LogEntry.LogCategory.ERROR)
时,结果是一个IQueryable,我得到指定的类型成员LogCategory不支持LINQ到实体。
当我运行迁移时,Up()方法不映射表。
我的模型是这样的
public partial class LogEntry
{
public enum HttpMethod
{
GET,
POST,
PUT,
DELETE
};
public enum LogCategory
{
PAGE_VISIT,
TRANSACTION,
AUTHENTICATION,
FAILED_AUTHENTICATION,
EXCEPTION,
INPUT_VALIDATION_ERROR,
SPECIFICATION_FAILURE,
SYSTEM,
PAGE_NOT_FOUND,
UNAUTHORIZED_ACCESS
};
public int LogId { get; set; }
//public int? UserId { get; set; }
//public virtual User user { get; set; }
//public int? ForumId { get; set; }
//public virtual Forum forum { get; set; }
public DateTime DateTime { get; set; }
public string IPAddress { get; set; }
public string ActiveRole { get; set; }
public string Title { get; set; }
public string Details { get; set; }
public LogCategory Category { get; set; }
public String Url { get; set; }
public HttpMethod Method { get; set; }
public Boolean IsAjaxRequest { get; set; }
public String UserAgent { get; set; }
}
有谁知道是什么问题吗? 原来问题很简单。EF不喜欢enum成为LogEntry类的一部分。我把它搬到教室外面,突然它就好了。
我想我应该张贴这个以防其他人有同样的问题,因为没有任何东西指出我在正确的方向已经在SO!