Entity Framework 4.0 автоматически сгенерированные классы не помечены как сериализуемые - PullRequest
3 голосов
/ 03 мая 2010

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

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

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

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

Теперь я хочу знать следующее:

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

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

ИщемВаше ценное предложение.

Спасибо,

Бурхан Гхи

Ответы [ 2 ]

3 голосов
/ 19 апреля 2011

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

2 голосов
/ 06 мая 2010

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

...