2013-02-19 3 views
0

У меня модель используется для заполнения базы данныхИзменение модели без изменения базы данных?

public class Account 
{ 
    public int NumberOfPayPeriods { get { return 24; } } 
    public decimal YearAmount { get; set; } 
    public decimal PlanTotal 
    { 
     get { return NumberOfPayPeriods*YearAmount; } 
    } 
} 

Атрибут NumberOfPayPeriods Мне нужно изменить от только get к get; set;

Однако, когда я изменить это, я получаю EntityCommandExecutionException (недопустимое имя столбца). Я предполагаю, что это связано с тем, что он пытается сопоставить это с базой данных, где ранее не было такого столбца (поскольку это был только get).

Есть ли способ изменить это на get; set; без необходимости удалять таблицу? Там много важных данных, которые не могут быть потеряны или воссозданы.

+0

См http://stackoverflow.com/questions/7237822/how-do-i-add-a-column-to-a-table-schema-upgrade-and-have-it-map-to -an-эф-код – ChrisF

ответ

3

Добавить атрибут [NotMapped] над объектом, который вы не хотите хранить.

public class Account 
{ 
    [NotMapped] 
    public int NumberOfPayPeriods { get { return 24; } set { ... } } 
    public decimal YearAmount { get; set; } 
    public decimal PlanTotal 
    { 
     get { return NumberOfPayPeriods*YearAmount; } 
    } 
}