Entity Framework | Code First | Mapping of sub property from CultureInfo.Name

ε祈祈猫儿з 提交于 2019-12-29 06:35:10

问题


I've got an entity like this :

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

And I want to map just the Name property of CultureInfo to a single column in the table that Entity Framework generates for me.

How would I go about this? Currently I've tried looking at the OnModelCreating() method of the DbContext, but I'm not finding anything that is standing out.

I'm using Entity Framework 4.1 in and MVC 3 application with a Code First approach.

Many thanks.


回答1:


Unfrotunatelly EF can't do it this way. The workaround is defining separate property with the Name which will be mapped to the database and marking your Culture property as not mapped.

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

And in mapping you will define:

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


来源:https://stackoverflow.com/questions/5684094/entity-framework-code-first-mapping-of-sub-property-from-cultureinfo-name

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!