加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc-3 – 实体框架|代码优先|从CultureInfo.Name映射子

发布时间:2020-12-16 00:00:41 所属栏目:asp.Net 来源:网络整理
导读:我有一个像这样的实体: public class Course { public CultureInfo Culture {get; set;} :} 我想将CultureInfo的Name属性映射到Entity Framework为我生成的表中的单个列. 我怎么会这样呢?目前我已经尝试过查看DbContext的OnModelCreating()方法,但我找不到
我有一个像这样的实体:
public class Course {
    public CultureInfo Culture {get; set;}
    :
}

我想将CultureInfo的Name属性映射到Entity Framework为我生成的表中的单个列.

我怎么会这样呢?目前我已经尝试过查看DbContext的OnModelCreating()方法,但我找不到任何突出的东西.

我正在使用Entity Framework 4.1和MVC 3应用程序使用Code First方法.

非常感谢.

解决方法

Unfrotunatelly 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);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读