Мы используем частичные классы, но если вам нужно, чтобы они сохранялись и обрабатывались EF, опция «Обновить модель из базы данных» - ваш лучший друг.

ET MVC2 имеет сильную поддержку для использования атрибутов на сущностях (проверка, расширение вспомогательного класса Html и многое другое).

Если я сгенерировал свою модель из базы данных, используя модель данных сущности VS2010 EF4 (edmx и ее класс cs), и я хочу добавить атрибуты для некоторых сущностей. что было бы лучшей практикой? как мне справиться с обновлением модели (добавление большего количества полей / таблиц в базу данных и объединение их в edmx) - сохранит ли мои атрибуты или сгенерирует новый файл cs, стирающий все?

(Ручные изменения в этом файле могут вызвать непредвиденное поведение в вашем приложении.)

(Ручные изменения в этом файле будут перезаписаны при повторном создании кода.)

Ответы на вопрос(3)

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

Мы используем это как

 List<ValidationResult> errorList = new List<ValidationResult>();
        bool bValid = client.IsValid<Client, ClientMetadata>(ref errorList, false);


    public static bool IsValid<T, U>(this T obj, ref List<ValidationResult> errors, bool validateAllProperties = true) where T : IValidatableObject
    {
        //If metadata class type has been passed in that's different from the class to be validated, register the association
        if (typeof(T) != typeof(U))
        {
            TypeDescriptor.AddProviderTransparent(new AssociatedMetadataTypeTypeDescriptionProvider(typeof(T), typeof(U)), typeof(T));
        }

        var validationContext = new ValidationContext(obj, null, null);
        var validationResults = new List<ValidationResult>();
        Validator.TryValidateObject(obj, validationContext, validationResults, validateAllProperties);

        errors = validationResults;

        if (validationResults.Count > 0)
            return false;
        else
            return true;
    }
Решение Вопроса

частичные занятия расширить ваши автоматически сгенерированные объекты.

Добавление атрибутов к сгенерированным классам

 Dani06 янв. 2011 г., 22:32
Похоже, я не могу выполнить первую задачу - иметь пустой частичный класс. когда я это делаю, класс теряет всех своих членов. Я пишу это как: открытый частичный класс mydb: ObjectContext {[MetadataType (typeof (EventLog_Ext))] публичный частичный класс EventLog: EntityObject {}}
 Dani06 янв. 2011 г., 22:16
спасибо, просто чтобы убедиться: я добавляю частично пустой класс (?) и помещаю [MetadataType (typeof (myclass_ext)) поверх него - а затем добавляю еще один закрытый класс в имя myclass_ext и добавляю фактические поля, которые я хотите изменить их атрибуты на этот класс, и он работает на оригинале?
 Dani06 янв. 2011 г., 21:48
но как добавить атрибут в поле, которое уже находится в объекте? не будет ли это переопределением?

но если вам нужно, чтобы они сохранялись и обрабатывались EF, опция «Обновить модель из базы данных» - ваш лучший друг.

Ваш ответ на вопрос