Добавление кода в Entity Framework 4 сгенерированных POCO - PullRequest
1 голос
/ 12 декабря 2011

Начиная с диаграммы сущностей EF 4 и используя шаблоны T4, можно создавать классы POCO, которые можно использовать внутри модели предметной области. Сгенерированный код выглядит так:

public partial class Product
{
    public virtual int Id
    {
        get;
        set;
    }

    public virtual string Name
    {
        get;
        set;
    }
   //and so on
}

Есть ли какой-нибудь элегантный подход для добавления собственного кода для реализации свойств? Например, установщик имени я хотел бы реализовать путем понижения всех символов. Хотелось бы, чтобы мой код сопротивлялся повторной регенерации классов POCO из диаграммы EF.

Это требование несколько похоже на добавление кода проверки в классы POCO. Эта проблема уже решена путем создания отдельного класса проверки и связывания его с POCO через атрибут MetadataType. Этот отдельный класс проверки не перезаписывается путем многократной регенерации POCO из диаграммы EF.

Спасибо

Люциан

1 Ответ

1 голос
/ 12 декабря 2011

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

  • Пишите сущности самостоятельно и не используйте генератор - вы получите полный контроль над кодом сущности
  • Измените шаблон T4 в генераторе, чтобы либо добавить ваш прямой код (это может быть довольно сложно обобщить), либо просто добавить вызов к частичным методам (вы должны также объявить эти методы в генераторе) в методах получения и установки и в вашей частичной части Класс сущности реализует необходимые вам частичные методы.
...