Я использую mvc 4, сначала с базой данных.
Каждый раз, когда я обновляю файл model.edmx
, атрибут отображаемого имени, который я добавил, удаляется. Как я могу сохранить атрибут отображаемого имени между обновлениями?
Я использую mvc 4, сначала с базой данных.
Каждый раз, когда я обновляю файл model.edmx
, атрибут отображаемого имени, который я добавил, удаляется. Как я могу сохранить атрибут отображаемого имени между обновлениями?
Вы захотите использовать System.ComponentModel.DataAnnotations
. Вот упрощенный пример для таблицы "Пользователь" в EF, чтобы показать вам, как:
namespace YourNamespace.BlaBlaBla
{
[MetadataType(typeof(UserHelper))]
public partial class User { }
public class UserHelper
{
[Display(Name = "Your New Title For Name")]
public string Name { get; set; }
}
}
Вы также можете включить проверку в свой класс. Убедитесь, что это частичный класс с именем точно такой же - также не забывайте, что он должен находиться в том же пространстве имен, что и ваш .edmx.
Вам нужно использовать модели MetaDataTypes.
[MetadataType(typeof(ModelMD))]
public partial class Model
{
//This is for "extending" the EF generated model, saying what class is used for metadata, in your case DisplayName
}
public partial class ModelMD
{
[Display(Name = "Model_Title", ResourceType = typeof(DataFieldLabels))]
public string Titulo { get; set; }
[Display(Name = "Model_Description", ResourceType = typeof(DataFieldLabels))]
public string Descripcion { get; set; }
}
В приведенном выше примере я использую файлы ресурсов, чтобы отображать отображаемые имена полей... но вы могли бы использовать его более закодированным образом:)
Вы должны создать новый файл в другой папке, скажем, "ModelMD". Таким образом, после восстановления моделей этот файл сохраняется без изменений.
Важно: Файл ModelMD
должен использовать те же пространства имен, что и исходная модель. Если вы поместите файл в другую папку, по умолчанию используется другое пространство имен.