EntityFrameowk6.1 使用enum和低版本的不同

原有项目中使用EF5.0 实体类

public partial class Log : BaseEntity
    {
        public Nullable<int> LogLevelId { get; set; }
        /// <summary>
        /// Gets or sets the log level
        /// </summary>
        public LogLevel LogLevel
        {
            get
            {
                return (LogLevel)this.LogLevelId;
            }
            set
            {
                this.LogLevelId = (int)value;
            }
        }
    }
    /// <summary>
    /// Represents a log level
    /// </summary>
    public enum LogLevel
    {
        Debug = 10,
        Information = 20,
        Warning = 30,
        Error = 40,
        Fatal = 50
    }

今天更新到EF6.1中,项目报错(An error occurred while updating the entries. See the inner exception for details),之前也没有看EF具体的更新内容,用SQL Profiler查看生成的SQL语句原来多了一个LogLevel字段,改成

public partial class Log : BaseEntity
    {
        //public int LogLevelId { get; set; }
               /// <summary>
        /// Gets or sets the log level
        /// </summary>
        public LogLevel LogLevelId { get; set; }

    }
    /// <summary>
    /// Represents a log level
    /// </summary>
    public enum LogLevel
    {
        Debug = 10,
        Information = 20,
        Warning = 30,
        Error = 40,
        Fatal = 50
    }

可以保存成功了。等明天仔细看下EF5.0以后的更新内容。

posted @ 2013-12-23 22:22  胡晓凯  阅读(441)  评论(0)    收藏  举报