2014-04-03 3 views
0

В примерах из Microsoft, они неявно определены вычисляемое свойство, предоставляя только аксессор без мутатором:Как указать свойство, рассчитанное в Entity Framework?

public string NormalProperty { get; set; } 
public string CalculatedProperty 
{ 
    get { return "foobar" + NormalProperty; } 
} 

Я также хочу иметь мутатор в CalculatedProperty, который автоматически обрезает «Foobar» суффикс и присваивает результат обратно в NormalProperty.

public string CalculatedProperty 
{ 
    get { return "foobar" + NormalProperty; } 
    set { NormalProperty = value.Substring(6); } 
} 

Проблема в том, Entity Framework в настоящее время рассматривает CalculatedProperty нормальное свойство, и создать столбец с именем «CalculatedProperty» в базе данных.

Я не хочу обходиться с этим с помощью функций. Это можно сделать с помощью API-интерфейсов/Fluent API? Я использую EF 6.1.

+0

режим, который вы используете? Сначала код или база данных с файлом edmx? Если это последний, у меня может быть решение –

+0

Я строю новый сайт с нуля, используя Code First. :( – Livy

+0

Возможный дубликат [Игнорирование свойства класса в Entity Framework 4.1 Code First] (http://stackoverflow.com/questions/10385248/ignoring-a-class-property-in-entity-framework-4-1-code -первый) –

ответ

0

Это может быть сделано в вашем DataContext в коде первой

protected override void OnModelCreating(DbModelBuilder modelBuilder) 
{ 
    modelBuilder.Entity<Your_Class>().Ignore(x => x.CalculatedProperty); 
} 
+0

Я прочитал ссылку Герта Арнольда выше и решил проблему. Спасибо за ваш ответ в любом случае. – Livy

Смежные вопросы