i переименовал столбец в моем классе. Это выглядело так.Переименуйте столбец в EF с первым кодом
public class clsClassForStackoverflow
{
[Column(TypeName = "varchar"), StringLength(150)]
public string Name { get; set; }
Из-за изменения структуры мне пришлось переименовать его. Поэтому я удалил эту строку и добавил новую собственность. После этого я создал новый файл миграции для подготовки моего обновления базы данных, и в файле он хотел удалить старый столбец и добавить новый. Хорошо, я изменил drop на переименование, потому что в базе данных все еще есть данные. С каплей он исчезнет.
Новая миграция файл:
public partial class _100126_2 : DbMigration
{
public override void Up()
{
RenameColumn("dbo.tbClassForStackoverflow", "ClassForStackoverflow_Name", "ClassForStackoverflow_NewName");
}
public override void Down()
{
RenameColumn("dbo.tbClassForStackoverflow", "ClassForStackoverflow_NewName", "ClassForStackoverflow_Name");
}
}
После запуска обновления базы данных я посмотрел в мой класс и СВОЙСТВА Didnt изменились. Его еще называют «Имя», а не «NewName». Как я могу изменить это, не позволяя EF думать, что я удалил и добавил столбец?
Вы уверены, что миграция обновила действительную базу данных? Возможно, вы используете другую строку подключения, чем база данных обновлений. – pwas
@pwas да. Строка подключения ведет к нашей базе данных разработки. В таблице уже есть правильные столбцы. Его единственный класс, который каким-то образом не обновил свойство. – Cataklysim
Вы внесли изменения в БД «вручную», а не через миграцию? Или что конкретно проблема сейчас? Я не могу больше следовать ... – ChrFin