Автогенерируемые классы Entity Framework 4.0 не помечены как сериализуемые

Одна странная вещь, которую я должен увидеть в Entity Framework 4.0 V2 Auto Generated Classes (tt), заключается в том, что классы не помечены как Serializable. Хотя у них есть атрибут DataContract для WCF.

Теперь проблема в том, что когда я сохраняю объект POCO в состоянии представления, он выдает мне исключение, говорящее, что класс не сериализуем.

Если я сгенерирую классы без шаблонов t4 или с использованием схемы создания классов по умолчанию, я увижу, что сгенерированные классы имеют атрибут Serializable.

Но, к сожалению, я не могу использовать схему генерации сущностей по умолчанию. Поскольку я хочу приспособить некоторую пользовательскую логику к автоматически сгенерированному классу, что возможно только с помощью шаблонов t4.

Теперь то, что я хочу знать:

1) Почему Serializable Attribute отсутствует в автоматически сгенерированном классе, или я делаю какую-либо ошибку, или я придерживаюсь неправильного подхода.

2) Хорошо ли настроить шаблон EF 4.0 T4 для размещения атрибута Serializable.

Ищу ваше ценное предложение.

Спасибо,

Бурхан гхи


person Anis Ghee    schedule 03.05.2010    source источник


Ответы (2)


Да, вы можете изменить шаблон. Посмотрите Добавление атрибутов [DataMember] [DataContract] в Entity Framework POCO Шаблон для точного определения того, что вам нужно сделать, чтобы исправить ваш шаблон. Обратите особое внимание на функцию WriteHeader в шаблоне.

person Ross Pace    schedule 19.04.2011

Цель шаблона T4 - позволить вам настроить. Настройте его без страха! Вам предлагается настроить не только шаблон, но и файл edmx, на котором основан ваш шаблон. см. этот http://blogs.msdn.com/adonet/archive/2010/03/05/updated-data-model-designer-extension-starter-kit.aspx

person Fred Yang    schedule 06.05.2010