2014-09-25 54 views
0

我是ASP.Net的新手,我试图开发一个模型来代表来自系统的日志,但控制器向导(即创建脚手架视图)以及代码优先的方法不是创建所有的列。ASP.Net MVC 5不创建枚举列的MF

这是我的模型的定义:

namespace Project.Models 
{ 
    public enum SystemComponents : byte 
    { 
     Component1, Component2, Component3 
    } 

    public enum LogMessageCategory : byte 
    { 
     Warning, Error, Debug, Log 
    } 

    public class LogDbContext : DbContext 
    { 
     public DbSet<Log> Logs { get; set; } 
    } 

    public class Log 
    { 
     public int ID { get; set; } 

     [Required] 
     public SystemComponents AffectedComponent; 

     [Required] 
     public LogMessageCategory MessageCategory; 

     [Display(ResourceType = typeof(Resources.Resources), Name = "EventDate")] 
     [DataType(DataType.Date)] 
     [DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)] 
     [Required] 
     public DateTime EventDate { get; set; } 

     /// <summary> 
     /// Foreign Key that represents the event's emisor. 
     /// This can be both a User, or a System component 
     /// </summary> 
     public int ActorID { get; set; } 

     /// <summary> 
     /// Foreign Key that represents the event's emisor. 
     /// This can be both a User, or a System component 
     /// </summary> 
     public int ComponentID { get; set; } 
} 

我在做什么错?此外,在使用资源的视图(用于国际化)中显示此属性的正确方法是什么? (因为这个模型的实例将由系统创建,我不在乎如何在创建视图中显示字段)

此外,还有其他问题,我是否必须按顺序声明公共所有属性使用它们?在线教程没有解释这一点,但是如果没有,字段不会在数据库中创建。

P.D.我想我正在使用EF 6.0(VS 2013 Premium)

回答

1

您可能只需要将它们公开为属性而不是公用字段。

[Required] 
public SystemComponents AffectedComponent{ get; set; } 

[Required] 
public LogMessageCategory MessageCategory{ get; set; }