Entity Framework |Код первый |Отображение подчиненного свойства из CultureInfo.Name - PullRequest
2 голосов
/ 16 апреля 2011

У меня есть такая сущность:

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

И я хочу сопоставить только свойство Name CultureInfo с одним столбцом в таблице, которую Entity Framework создает для меня.

Как бы я поступил по этому поводу? В настоящее время я пытался посмотреть на метод OnModelCreating () объекта DbContext, но я не нашел ничего выдающегося.

Я использую Entity Framework 4.1 и приложение MVC 3 с подходом Code First.

Большое спасибо.

1 Ответ

5 голосов
/ 16 апреля 2011

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