【问题标题】:Entity Framework | Code First | Mapping of sub property from CultureInfo.Name实体框架 |代码优先 |从 CultureInfo.Name 映射子属性
【发布时间】:2011-08-06 17:54:47
【问题描述】:

我有一个这样的实体:

public class Course {
    public CultureInfo Culture {get; set;}
    :
}

我只想将CultureInfoName 属性映射到实体框架为我生成的表中的单个列。

我该怎么办?目前我已经尝试查看 DbContext 的 OnModelCreating() 方法,但没有发现任何突出的内容。

我正在使用带有代码优先方法的 Entity Framework 4.1 和 MVC 3 应用程序。

非常感谢。

【问题讨论】:

    标签: asp.net-mvc-3 mapping ef-code-first code-first entity-framework-4.1


    【解决方案1】:

    不幸的是,EF 不能这样做。解决方法是使用将映射到数据库的 Name 定义单独的属性,并将您的 Culture 属性标记为未映射。

    public class Course
    {
        public CultureInfo Culture { get; set; }
        public string CultureName 
        {
            get 
            {
                if (Cuture != null)
                {
                    return Culture.Name;
                }
    
                return null;
            }
            set
            {
                // same check for value can be placed here
    
                Culture = new CultureInfo(value);
            }
        }
    }
    

    在映射中,您将定义:

    modelBuilder.Entity<Course>()
                .Ignore(c => c.Culture);
    

    【讨论】:

    • 不是我想听到的,但我们不能拥有我想的一切 :) 非常感谢 Ladislav!
    猜你喜欢
    • 2012-01-09
    • 2011-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多